summaryrefslogtreecommitdiffstats
path: root/qa/suites
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
commit483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch)
treee5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /qa/suites
parentInitial commit. (diff)
downloadceph-upstream.tar.xz
ceph-upstream.zip
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
l---------qa/suites/.qa1
l---------qa/suites/big/.qa1
-rw-r--r--qa/suites/big/rados-thrash/%0
l---------qa/suites/big/rados-thrash/.qa1
l---------qa/suites/big/rados-thrash/ceph/.qa1
-rw-r--r--qa/suites/big/rados-thrash/ceph/ceph.yaml3
l---------qa/suites/big/rados-thrash/clusters/.qa1
-rw-r--r--qa/suites/big/rados-thrash/clusters/big.yaml68
-rw-r--r--qa/suites/big/rados-thrash/clusters/medium.yaml22
-rw-r--r--qa/suites/big/rados-thrash/clusters/small.yaml6
l---------qa/suites/big/rados-thrash/objectstore1
-rw-r--r--qa/suites/big/rados-thrash/openstack.yaml8
l---------qa/suites/big/rados-thrash/thrashers/.qa1
-rw-r--r--qa/suites/big/rados-thrash/thrashers/default.yaml11
l---------qa/suites/big/rados-thrash/workloads/.qa1
-rw-r--r--qa/suites/big/rados-thrash/workloads/snaps-few-objects.yaml13
l---------qa/suites/buildpackages/.qa1
-rw-r--r--qa/suites/buildpackages/any/%0
l---------qa/suites/buildpackages/any/.qa1
l---------qa/suites/buildpackages/any/distros1
l---------qa/suites/buildpackages/any/tasks/.qa1
-rw-r--r--qa/suites/buildpackages/any/tasks/release.yaml8
-rw-r--r--qa/suites/buildpackages/tests/%0
l---------qa/suites/buildpackages/tests/.qa1
l---------qa/suites/buildpackages/tests/distros1
l---------qa/suites/buildpackages/tests/tasks/.qa1
-rw-r--r--qa/suites/buildpackages/tests/tasks/release.yaml20
l---------qa/suites/ceph-ansible/.qa1
l---------qa/suites/ceph-ansible/smoke/.qa1
-rw-r--r--qa/suites/ceph-ansible/smoke/basic/%0
l---------qa/suites/ceph-ansible/smoke/basic/.qa1
l---------qa/suites/ceph-ansible/smoke/basic/0-clusters/.qa1
-rw-r--r--qa/suites/ceph-ansible/smoke/basic/0-clusters/3-node.yaml12
-rw-r--r--qa/suites/ceph-ansible/smoke/basic/0-clusters/4-node.yaml13
l---------qa/suites/ceph-ansible/smoke/basic/1-distros/.qa1
l---------qa/suites/ceph-ansible/smoke/basic/1-distros/centos_latest.yaml1
l---------qa/suites/ceph-ansible/smoke/basic/1-distros/ubuntu_latest.yaml1
l---------qa/suites/ceph-ansible/smoke/basic/2-ceph/.qa1
-rw-r--r--qa/suites/ceph-ansible/smoke/basic/2-ceph/ceph_ansible.yaml35
l---------qa/suites/ceph-ansible/smoke/basic/3-config/.qa1
-rw-r--r--qa/suites/ceph-ansible/smoke/basic/3-config/bluestore_with_dmcrypt.yaml8
-rw-r--r--qa/suites/ceph-ansible/smoke/basic/3-config/dmcrypt_off.yaml7
-rw-r--r--qa/suites/ceph-ansible/smoke/basic/3-config/dmcrypt_on.yaml7
l---------qa/suites/ceph-ansible/smoke/basic/4-tasks/.qa1
-rw-r--r--qa/suites/ceph-ansible/smoke/basic/4-tasks/ceph-admin-commands.yaml7
-rw-r--r--qa/suites/ceph-ansible/smoke/basic/4-tasks/rbd_import_export.yaml7
-rw-r--r--qa/suites/ceph-ansible/smoke/basic/4-tasks/rest.yaml15
-rw-r--r--qa/suites/ceph-deploy/%0
l---------qa/suites/ceph-deploy/.qa1
l---------qa/suites/ceph-deploy/cluster/.qa1
-rw-r--r--qa/suites/ceph-deploy/cluster/4node.yaml15
l---------qa/suites/ceph-deploy/config/.qa1
-rw-r--r--qa/suites/ceph-deploy/config/ceph_volume_bluestore.yaml7
-rw-r--r--qa/suites/ceph-deploy/config/ceph_volume_bluestore_dmcrypt.yaml8
-rw-r--r--qa/suites/ceph-deploy/config/ceph_volume_dmcrypt_off.yaml3
-rw-r--r--qa/suites/ceph-deploy/config/ceph_volume_filestore.yaml4
l---------qa/suites/ceph-deploy/distros/.qa1
l---------qa/suites/ceph-deploy/distros/centos_latest.yaml1
l---------qa/suites/ceph-deploy/distros/ubuntu_latest.yaml1
l---------qa/suites/ceph-deploy/python_versions/.qa1
-rw-r--r--qa/suites/ceph-deploy/python_versions/python_2.yaml3
-rw-r--r--qa/suites/ceph-deploy/python_versions/python_3.yaml3
l---------qa/suites/ceph-deploy/tasks/.qa1
-rw-r--r--qa/suites/ceph-deploy/tasks/ceph-admin-commands.yaml12
-rw-r--r--qa/suites/ceph-deploy/tasks/rbd_import_export.yaml9
-rw-r--r--qa/suites/cephmetrics/%0
l---------qa/suites/cephmetrics/.qa1
l---------qa/suites/cephmetrics/0-clusters/.qa1
-rw-r--r--qa/suites/cephmetrics/0-clusters/3-node.yaml11
l---------qa/suites/cephmetrics/1-distros/.qa1
l---------qa/suites/cephmetrics/1-distros/centos_latest.yaml1
l---------qa/suites/cephmetrics/1-distros/ubuntu_latest.yaml1
l---------qa/suites/cephmetrics/2-ceph/.qa1
-rw-r--r--qa/suites/cephmetrics/2-ceph/ceph_ansible.yaml32
l---------qa/suites/cephmetrics/3-ceph-config/.qa1
-rw-r--r--qa/suites/cephmetrics/3-ceph-config/bluestore_with_dmcrypt.yaml8
-rw-r--r--qa/suites/cephmetrics/3-ceph-config/bluestore_without_dmcrypt.yaml8
-rw-r--r--qa/suites/cephmetrics/3-ceph-config/dmcrypt_off.yaml7
-rw-r--r--qa/suites/cephmetrics/3-ceph-config/dmcrypt_on.yaml7
l---------qa/suites/cephmetrics/4-epel/.qa1
-rw-r--r--qa/suites/cephmetrics/4-epel/no_epel.yaml7
-rw-r--r--qa/suites/cephmetrics/4-epel/use_epel.yaml7
l---------qa/suites/cephmetrics/5-containers/.qa1
-rw-r--r--qa/suites/cephmetrics/5-containers/containerized.yaml10
-rw-r--r--qa/suites/cephmetrics/5-containers/no_containers.yaml10
l---------qa/suites/cephmetrics/6-tasks/.qa1
-rw-r--r--qa/suites/cephmetrics/6-tasks/cephmetrics.yaml4
-rw-r--r--qa/suites/dummy/%0
l---------qa/suites/dummy/.qa1
l---------qa/suites/dummy/all/.qa1
-rw-r--r--qa/suites/dummy/all/nop.yaml6
l---------qa/suites/experimental/.qa1
-rw-r--r--qa/suites/experimental/multimds/%0
l---------qa/suites/experimental/multimds/.qa1
l---------qa/suites/experimental/multimds/clusters/.qa1
-rw-r--r--qa/suites/experimental/multimds/clusters/7-multimds.yaml8
l---------qa/suites/experimental/multimds/tasks/.qa1
-rw-r--r--qa/suites/experimental/multimds/tasks/fsstress_thrash_subtrees.yaml15
l---------qa/suites/fs/.qa1
-rw-r--r--qa/suites/fs/32bits/%0
l---------qa/suites/fs/32bits/.qa1
l---------qa/suites/fs/32bits/begin.yaml1
l---------qa/suites/fs/32bits/clusters/.qa1
l---------qa/suites/fs/32bits/clusters/fixed-2-ucephfs.yaml1
l---------qa/suites/fs/32bits/conf1
l---------qa/suites/fs/32bits/mount/.qa1
l---------qa/suites/fs/32bits/mount/fuse.yaml1
l---------qa/suites/fs/32bits/objectstore-ec1
-rw-r--r--qa/suites/fs/32bits/overrides/+0
l---------qa/suites/fs/32bits/overrides/.qa1
-rw-r--r--qa/suites/fs/32bits/overrides/faked-ino.yaml5
l---------qa/suites/fs/32bits/overrides/frag_enable.yaml1
l---------qa/suites/fs/32bits/overrides/whitelist_health.yaml1
l---------qa/suites/fs/32bits/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/32bits/supported-random-distros$1
l---------qa/suites/fs/32bits/tasks/.qa1
l---------qa/suites/fs/32bits/tasks/cfuse_workunit_suites_fsstress.yaml1
-rw-r--r--qa/suites/fs/32bits/tasks/cfuse_workunit_suites_pjd.yaml12
-rw-r--r--qa/suites/fs/basic_functional/%0
l---------qa/suites/fs/basic_functional/.qa1
l---------qa/suites/fs/basic_functional/begin.yaml1
l---------qa/suites/fs/basic_functional/clusters/.qa1
l---------qa/suites/fs/basic_functional/clusters/1-mds-4-client-coloc.yaml1
l---------qa/suites/fs/basic_functional/conf1
l---------qa/suites/fs/basic_functional/mount/.qa1
l---------qa/suites/fs/basic_functional/mount/fuse.yaml1
l---------qa/suites/fs/basic_functional/objectstore/.qa1
l---------qa/suites/fs/basic_functional/objectstore/bluestore-bitmap.yaml1
l---------qa/suites/fs/basic_functional/objectstore/bluestore-ec-root.yaml1
-rw-r--r--qa/suites/fs/basic_functional/overrides/+0
l---------qa/suites/fs/basic_functional/overrides/.qa1
l---------qa/suites/fs/basic_functional/overrides/frag_enable.yaml1
l---------qa/suites/fs/basic_functional/overrides/no_client_pidfile.yaml1
l---------qa/suites/fs/basic_functional/overrides/whitelist_health.yaml1
l---------qa/suites/fs/basic_functional/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/basic_functional/supported-random-distros$1
l---------qa/suites/fs/basic_functional/tasks/.qa1
-rw-r--r--qa/suites/fs/basic_functional/tasks/admin.yaml11
-rw-r--r--qa/suites/fs/basic_functional/tasks/alternate-pool.yaml20
-rw-r--r--qa/suites/fs/basic_functional/tasks/asok_dump_tree.yaml4
-rw-r--r--qa/suites/fs/basic_functional/tasks/auto-repair.yaml13
-rw-r--r--qa/suites/fs/basic_functional/tasks/backtrace.yaml5
-rw-r--r--qa/suites/fs/basic_functional/tasks/cap-flush.yaml8
-rw-r--r--qa/suites/fs/basic_functional/tasks/cephfs-shell.yaml8
-rw-r--r--qa/suites/fs/basic_functional/tasks/cephfs_scrub_tests.yaml19
-rw-r--r--qa/suites/fs/basic_functional/tasks/cfuse_workunit_quota.yaml5
-rw-r--r--qa/suites/fs/basic_functional/tasks/client-limits.yaml19
-rw-r--r--qa/suites/fs/basic_functional/tasks/client-readahad.yaml4
-rw-r--r--qa/suites/fs/basic_functional/tasks/client-recovery.yaml17
-rw-r--r--qa/suites/fs/basic_functional/tasks/damage.yaml27
-rw-r--r--qa/suites/fs/basic_functional/tasks/data-scan.yaml20
-rw-r--r--qa/suites/fs/basic_functional/tasks/forward-scrub.yaml14
-rw-r--r--qa/suites/fs/basic_functional/tasks/fragment.yaml5
-rw-r--r--qa/suites/fs/basic_functional/tasks/journal-repair.yaml14
-rw-r--r--qa/suites/fs/basic_functional/tasks/libcephfs_python.yaml10
-rw-r--r--qa/suites/fs/basic_functional/tasks/mds-flush.yaml5
-rw-r--r--qa/suites/fs/basic_functional/tasks/mds-full.yaml37
-rw-r--r--qa/suites/fs/basic_functional/tasks/mds_creation_retry.yaml6
-rw-r--r--qa/suites/fs/basic_functional/tasks/openfiletable.yaml5
-rw-r--r--qa/suites/fs/basic_functional/tasks/pool-perm.yaml5
-rw-r--r--qa/suites/fs/basic_functional/tasks/quota.yaml5
-rw-r--r--qa/suites/fs/basic_functional/tasks/sessionmap/+0
l---------qa/suites/fs/basic_functional/tasks/sessionmap/.qa1
-rw-r--r--qa/suites/fs/basic_functional/tasks/sessionmap/sessionmap.yaml10
-rw-r--r--qa/suites/fs/basic_functional/tasks/strays.yaml5
-rw-r--r--qa/suites/fs/basic_functional/tasks/test_journal_migration.yaml5
-rw-r--r--qa/suites/fs/basic_functional/tasks/volume-client/%0
l---------qa/suites/fs/basic_functional/tasks/volume-client/.qa1
l---------qa/suites/fs/basic_functional/tasks/volume-client/task/.qa1
-rw-r--r--qa/suites/fs/basic_functional/tasks/volume-client/task/test/+0
l---------qa/suites/fs/basic_functional/tasks/volume-client/task/test/.qa1
-rw-r--r--qa/suites/fs/basic_functional/tasks/volume-client/task/test/test.yaml8
-rw-r--r--qa/suites/fs/basic_functional/tasks/volumes.yaml20
-rw-r--r--qa/suites/fs/basic_workload/%0
l---------qa/suites/fs/basic_workload/.qa1
l---------qa/suites/fs/basic_workload/begin.yaml1
l---------qa/suites/fs/basic_workload/clusters/.qa1
l---------qa/suites/fs/basic_workload/clusters/fixed-2-ucephfs.yaml1
l---------qa/suites/fs/basic_workload/conf1
l---------qa/suites/fs/basic_workload/inline/.qa1
-rw-r--r--qa/suites/fs/basic_workload/inline/no.yaml0
-rw-r--r--qa/suites/fs/basic_workload/inline/yes.yaml4
l---------qa/suites/fs/basic_workload/mount/.qa1
l---------qa/suites/fs/basic_workload/mount/fuse.yaml1
l---------qa/suites/fs/basic_workload/objectstore-ec1
l---------qa/suites/fs/basic_workload/omap_limit/.qa1
-rw-r--r--qa/suites/fs/basic_workload/omap_limit/10.yaml5
-rw-r--r--qa/suites/fs/basic_workload/omap_limit/10000.yaml5
-rw-r--r--qa/suites/fs/basic_workload/overrides/+0
l---------qa/suites/fs/basic_workload/overrides/.qa1
l---------qa/suites/fs/basic_workload/overrides/frag_enable.yaml1
l---------qa/suites/fs/basic_workload/overrides/session_timeout.yaml1
l---------qa/suites/fs/basic_workload/overrides/whitelist_health.yaml1
l---------qa/suites/fs/basic_workload/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/basic_workload/supported-random-distros$1
l---------qa/suites/fs/basic_workload/tasks/.qa1
-rw-r--r--qa/suites/fs/basic_workload/tasks/cfuse_workunit_kernel_untar_build.yaml14
-rw-r--r--qa/suites/fs/basic_workload/tasks/cfuse_workunit_misc.yaml10
-rw-r--r--qa/suites/fs/basic_workload/tasks/cfuse_workunit_misc_test_o_trunc.yaml5
-rw-r--r--qa/suites/fs/basic_workload/tasks/cfuse_workunit_norstats.yaml15
l---------qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_blogbench.yaml1
l---------qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_dbench.yaml1
l---------qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_ffsb.yaml1
l---------qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_fsstress.yaml1
-rw-r--r--qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_fsx.yaml9
-rw-r--r--qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_fsync.yaml5
-rw-r--r--qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_iogen.yaml6
-rw-r--r--qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_iozone.yaml5
-rw-r--r--qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_pjd.yaml12
-rw-r--r--qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_truncate_delay.yaml14
l---------qa/suites/fs/basic_workload/tasks/cfuse_workunit_trivial_sync.yaml1
l---------qa/suites/fs/basic_workload/tasks/libcephfs_interface_tests.yaml1
l---------qa/suites/fs/bugs/.qa1
-rw-r--r--qa/suites/fs/bugs/client_trim_caps/%0
l---------qa/suites/fs/bugs/client_trim_caps/.qa1
l---------qa/suites/fs/bugs/client_trim_caps/begin.yaml1
l---------qa/suites/fs/bugs/client_trim_caps/clusters/.qa1
-rw-r--r--qa/suites/fs/bugs/client_trim_caps/clusters/small-cluster.yaml11
l---------qa/suites/fs/bugs/client_trim_caps/conf1
l---------qa/suites/fs/bugs/client_trim_caps/objectstore/.qa1
l---------qa/suites/fs/bugs/client_trim_caps/objectstore/bluestore-bitmap.yaml1
-rw-r--r--qa/suites/fs/bugs/client_trim_caps/overrides/+0
l---------qa/suites/fs/bugs/client_trim_caps/overrides/.qa1
l---------qa/suites/fs/bugs/client_trim_caps/overrides/frag_enable.yaml1
l---------qa/suites/fs/bugs/client_trim_caps/overrides/no_client_pidfile.yaml1
l---------qa/suites/fs/bugs/client_trim_caps/overrides/whitelist_health.yaml1
l---------qa/suites/fs/bugs/client_trim_caps/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/bugs/client_trim_caps/tasks/.qa1
-rw-r--r--qa/suites/fs/bugs/client_trim_caps/tasks/trim-i22073.yaml20
-rw-r--r--qa/suites/fs/multiclient/%0
l---------qa/suites/fs/multiclient/.qa1
l---------qa/suites/fs/multiclient/begin.yaml1
l---------qa/suites/fs/multiclient/clusters/.qa1
l---------qa/suites/fs/multiclient/clusters/1-mds-2-client.yaml1
l---------qa/suites/fs/multiclient/clusters/1-mds-3-client.yaml1
l---------qa/suites/fs/multiclient/conf1
l---------qa/suites/fs/multiclient/distros/.qa1
l---------qa/suites/fs/multiclient/distros/ubuntu_latest.yaml1
l---------qa/suites/fs/multiclient/mount/.qa1
l---------qa/suites/fs/multiclient/mount/fuse.yaml1
-rw-r--r--qa/suites/fs/multiclient/mount/kclient.yaml.disabled7
l---------qa/suites/fs/multiclient/objectstore-ec1
-rw-r--r--qa/suites/fs/multiclient/overrides/+0
l---------qa/suites/fs/multiclient/overrides/.qa1
l---------qa/suites/fs/multiclient/overrides/frag_enable.yaml1
l---------qa/suites/fs/multiclient/overrides/whitelist_health.yaml1
l---------qa/suites/fs/multiclient/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/multiclient/tasks/.qa1
-rw-r--r--qa/suites/fs/multiclient/tasks/cephfs_misc_tests.yaml13
-rw-r--r--qa/suites/fs/multiclient/tasks/fsx-mpi.yaml.disabled17
-rw-r--r--qa/suites/fs/multiclient/tasks/ior-shared-file.yaml23
-rw-r--r--qa/suites/fs/multiclient/tasks/mdtest.yaml20
-rw-r--r--qa/suites/fs/multifs/%0
l---------qa/suites/fs/multifs/.qa1
l---------qa/suites/fs/multifs/begin.yaml1
l---------qa/suites/fs/multifs/clusters/.qa1
l---------qa/suites/fs/multifs/clusters/1a3s-mds-2c-client.yaml1
l---------qa/suites/fs/multifs/conf1
l---------qa/suites/fs/multifs/mount/.qa1
l---------qa/suites/fs/multifs/mount/fuse.yaml1
l---------qa/suites/fs/multifs/objectstore-ec1
-rw-r--r--qa/suites/fs/multifs/overrides/+0
l---------qa/suites/fs/multifs/overrides/.qa1
l---------qa/suites/fs/multifs/overrides/frag_enable.yaml1
-rw-r--r--qa/suites/fs/multifs/overrides/mon-debug.yaml5
l---------qa/suites/fs/multifs/overrides/whitelist_health.yaml1
l---------qa/suites/fs/multifs/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/multifs/supported-random-distros$1
l---------qa/suites/fs/multifs/tasks/.qa1
-rw-r--r--qa/suites/fs/multifs/tasks/failover.yaml14
-rw-r--r--qa/suites/fs/permission/%0
l---------qa/suites/fs/permission/.qa1
l---------qa/suites/fs/permission/begin.yaml1
l---------qa/suites/fs/permission/clusters/.qa1
l---------qa/suites/fs/permission/clusters/fixed-2-ucephfs.yaml1
l---------qa/suites/fs/permission/conf1
l---------qa/suites/fs/permission/mount/.qa1
l---------qa/suites/fs/permission/mount/fuse.yaml1
l---------qa/suites/fs/permission/objectstore-ec1
-rw-r--r--qa/suites/fs/permission/overrides/+0
l---------qa/suites/fs/permission/overrides/.qa1
l---------qa/suites/fs/permission/overrides/frag_enable.yaml1
l---------qa/suites/fs/permission/overrides/whitelist_health.yaml1
l---------qa/suites/fs/permission/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/permission/supported-random-distros$1
l---------qa/suites/fs/permission/tasks/.qa1
-rw-r--r--qa/suites/fs/permission/tasks/cfuse_workunit_misc.yaml12
-rw-r--r--qa/suites/fs/permission/tasks/cfuse_workunit_suites_pjd.yaml13
-rw-r--r--qa/suites/fs/snaps/%0
l---------qa/suites/fs/snaps/.qa1
l---------qa/suites/fs/snaps/begin.yaml1
l---------qa/suites/fs/snaps/clusters/.qa1
l---------qa/suites/fs/snaps/clusters/fixed-2-ucephfs.yaml1
l---------qa/suites/fs/snaps/conf1
l---------qa/suites/fs/snaps/mount/.qa1
l---------qa/suites/fs/snaps/mount/fuse.yaml1
l---------qa/suites/fs/snaps/objectstore-ec1
-rw-r--r--qa/suites/fs/snaps/overrides/+0
l---------qa/suites/fs/snaps/overrides/.qa1
l---------qa/suites/fs/snaps/overrides/frag_enable.yaml1
l---------qa/suites/fs/snaps/overrides/whitelist_health.yaml1
l---------qa/suites/fs/snaps/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/snaps/supported-random-distros$1
l---------qa/suites/fs/snaps/tasks/.qa1
-rw-r--r--qa/suites/fs/snaps/tasks/snaptests.yaml5
-rw-r--r--qa/suites/fs/thrash/%0
l---------qa/suites/fs/thrash/.qa1
l---------qa/suites/fs/thrash/begin.yaml1
l---------qa/suites/fs/thrash/ceph-thrash/.qa1
-rw-r--r--qa/suites/fs/thrash/ceph-thrash/default.yaml7
l---------qa/suites/fs/thrash/clusters/.qa1
l---------qa/suites/fs/thrash/clusters/1-mds-1-client-coloc.yaml1
l---------qa/suites/fs/thrash/conf1
l---------qa/suites/fs/thrash/mount/.qa1
l---------qa/suites/fs/thrash/mount/fuse.yaml1
l---------qa/suites/fs/thrash/msgr-failures/.qa1
-rw-r--r--qa/suites/fs/thrash/msgr-failures/none.yaml0
-rw-r--r--qa/suites/fs/thrash/msgr-failures/osd-mds-delay.yaml10
l---------qa/suites/fs/thrash/objectstore-ec1
-rw-r--r--qa/suites/fs/thrash/overrides/+0
l---------qa/suites/fs/thrash/overrides/.qa1
l---------qa/suites/fs/thrash/overrides/frag_enable.yaml1
l---------qa/suites/fs/thrash/overrides/session_timeout.yaml1
l---------qa/suites/fs/thrash/overrides/whitelist_health.yaml1
l---------qa/suites/fs/thrash/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/thrash/supported-random-distros$1
l---------qa/suites/fs/thrash/tasks/.qa1
-rw-r--r--qa/suites/fs/thrash/tasks/cfuse_workunit_snaptests.yaml5
l---------qa/suites/fs/thrash/tasks/cfuse_workunit_suites_fsstress.yaml1
-rw-r--r--qa/suites/fs/thrash/tasks/cfuse_workunit_suites_pjd.yaml12
l---------qa/suites/fs/thrash/tasks/cfuse_workunit_trivial_sync.yaml1
-rw-r--r--qa/suites/fs/traceless/%0
l---------qa/suites/fs/traceless/.qa1
l---------qa/suites/fs/traceless/begin.yaml1
l---------qa/suites/fs/traceless/clusters/.qa1
l---------qa/suites/fs/traceless/clusters/fixed-2-ucephfs.yaml1
l---------qa/suites/fs/traceless/conf1
l---------qa/suites/fs/traceless/mount/.qa1
l---------qa/suites/fs/traceless/mount/fuse.yaml1
l---------qa/suites/fs/traceless/objectstore-ec1
-rw-r--r--qa/suites/fs/traceless/overrides/+0
l---------qa/suites/fs/traceless/overrides/.qa1
l---------qa/suites/fs/traceless/overrides/frag_enable.yaml1
l---------qa/suites/fs/traceless/overrides/whitelist_health.yaml1
l---------qa/suites/fs/traceless/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/traceless/supported-random-distros$1
l---------qa/suites/fs/traceless/tasks/.qa1
l---------qa/suites/fs/traceless/tasks/cfuse_workunit_suites_blogbench.yaml1
l---------qa/suites/fs/traceless/tasks/cfuse_workunit_suites_dbench.yaml1
l---------qa/suites/fs/traceless/tasks/cfuse_workunit_suites_ffsb.yaml1
l---------qa/suites/fs/traceless/tasks/cfuse_workunit_suites_fsstress.yaml1
l---------qa/suites/fs/traceless/traceless/.qa1
-rw-r--r--qa/suites/fs/traceless/traceless/50pc.yaml5
l---------qa/suites/fs/upgrade/.qa1
l---------qa/suites/fs/upgrade/featureful_client/.qa1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/%0
l---------qa/suites/fs/upgrade/featureful_client/old_client/.qa1
l---------qa/suites/fs/upgrade/featureful_client/old_client/bluestore-bitmap.yaml1
l---------qa/suites/fs/upgrade/featureful_client/old_client/clusters/.qa1
l---------qa/suites/fs/upgrade/featureful_client/old_client/clusters/1-mds-2-client-micro.yaml1
l---------qa/suites/fs/upgrade/featureful_client/old_client/conf1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/overrides/%0
l---------qa/suites/fs/upgrade/featureful_client/old_client/overrides/.qa1
l---------qa/suites/fs/upgrade/featureful_client/old_client/overrides/frag_enable.yaml1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/no.yaml4
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/yes.yaml4
l---------qa/suites/fs/upgrade/featureful_client/old_client/overrides/whitelist_health.yaml1
l---------qa/suites/fs/upgrade/featureful_client/old_client/overrides/whitelist_wrongly_marked_down.yaml1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/tasks/%0
l---------qa/suites/fs/upgrade/featureful_client/old_client/tasks/.qa1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/tasks/0-luminous.yaml41
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/tasks/1-client.yaml8
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/tasks/2-upgrade.yaml56
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/mimic.yaml10
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/no.yaml6
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/%0
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/.qa1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/bluestore-bitmap.yaml1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/.qa1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/1-mds-2-client-micro.yaml1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/conf1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/%0
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/.qa1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/frag_enable.yaml1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/no.yaml4
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/yes.yaml4
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/whitelist_health.yaml1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/whitelist_wrongly_marked_down.yaml1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/%0
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/.qa1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/0-luminous.yaml41
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/1-client.yaml11
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/2-upgrade.yaml56
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/3-client-upgrade.yaml14
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/4-compat_client.yaml13
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/5-client-sanity.yaml6
-rw-r--r--qa/suites/fs/upgrade/snaps/%0
l---------qa/suites/fs/upgrade/snaps/.qa1
l---------qa/suites/fs/upgrade/snaps/clusters/.qa1
l---------qa/suites/fs/upgrade/snaps/clusters/3-mds.yaml1
l---------qa/suites/fs/upgrade/snaps/conf1
l---------qa/suites/fs/upgrade/snaps/objectstore-ec1
-rw-r--r--qa/suites/fs/upgrade/snaps/overrides/%0
l---------qa/suites/fs/upgrade/snaps/overrides/.qa1
l---------qa/suites/fs/upgrade/snaps/overrides/frag_enable.yaml1
l---------qa/suites/fs/upgrade/snaps/overrides/multimds/.qa1
-rw-r--r--qa/suites/fs/upgrade/snaps/overrides/multimds/no.yaml3
-rw-r--r--qa/suites/fs/upgrade/snaps/overrides/multimds/yes.yaml3
l---------qa/suites/fs/upgrade/snaps/overrides/whitelist_health.yaml1
-rw-r--r--qa/suites/fs/upgrade/snaps/overrides/whitelist_rstat.yaml8
l---------qa/suites/fs/upgrade/snaps/overrides/whitelist_wrongly_marked_down.yaml1
-rw-r--r--qa/suites/fs/upgrade/snaps/tasks/%0
l---------qa/suites/fs/upgrade/snaps/tasks/.qa1
-rw-r--r--qa/suites/fs/upgrade/snaps/tasks/0-luminous.yaml41
-rw-r--r--qa/suites/fs/upgrade/snaps/tasks/1-client.yaml13
-rw-r--r--qa/suites/fs/upgrade/snaps/tasks/2-upgrade.yaml19
-rw-r--r--qa/suites/fs/upgrade/snaps/tasks/3-sanity.yaml10
l---------qa/suites/fs/upgrade/snaps/tasks/4-client-upgrade/.qa1
-rw-r--r--qa/suites/fs/upgrade/snaps/tasks/4-client-upgrade/no.yaml0
-rw-r--r--qa/suites/fs/upgrade/snaps/tasks/4-client-upgrade/yes.yaml10
-rw-r--r--qa/suites/fs/upgrade/snaps/tasks/5-client-sanity.yaml10
-rw-r--r--qa/suites/fs/upgrade/snaps/tasks/6-snap-upgrade.yaml16
l---------qa/suites/fs/upgrade/snaps/tasks/7-client-sanity.yaml1
l---------qa/suites/fs/upgrade/volumes/.qa1
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/%0
l---------qa/suites/fs/upgrade/volumes/import-legacy/.qa1
l---------qa/suites/fs/upgrade/volumes/import-legacy/bluestore-bitmap.yaml1
l---------qa/suites/fs/upgrade/volumes/import-legacy/clusters/.qa1
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/clusters/1-mds-2-client-micro.yaml7
l---------qa/suites/fs/upgrade/volumes/import-legacy/conf1
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/overrides/+0
l---------qa/suites/fs/upgrade/volumes/import-legacy/overrides/.qa1
l---------qa/suites/fs/upgrade/volumes/import-legacy/overrides/frag_enable.yaml1
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/overrides/pg-warn.yaml5
l---------qa/suites/fs/upgrade/volumes/import-legacy/overrides/whitelist_health.yaml1
l---------qa/suites/fs/upgrade/volumes/import-legacy/overrides/whitelist_wrongly_marked_down.yaml1
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/tasks/%0
l---------qa/suites/fs/upgrade/volumes/import-legacy/tasks/.qa1
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/tasks/0-mimic.yaml42
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/tasks/1-client.yaml33
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/tasks/2-upgrade.yaml54
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/tasks/3-verify.yaml25
l---------qa/suites/fs/upgrade/volumes/import-legacy/ubuntu_18.04.yaml1
-rw-r--r--qa/suites/fs/verify/%0
l---------qa/suites/fs/verify/.qa1
l---------qa/suites/fs/verify/begin.yaml1
l---------qa/suites/fs/verify/centos_latest.yaml1
l---------qa/suites/fs/verify/clusters/.qa1
l---------qa/suites/fs/verify/clusters/fixed-2-ucephfs.yaml1
l---------qa/suites/fs/verify/conf1
l---------qa/suites/fs/verify/mount/.qa1
l---------qa/suites/fs/verify/mount/fuse.yaml1
l---------qa/suites/fs/verify/objectstore-ec1
-rw-r--r--qa/suites/fs/verify/overrides/+0
l---------qa/suites/fs/verify/overrides/.qa1
l---------qa/suites/fs/verify/overrides/frag_enable.yaml1
-rw-r--r--qa/suites/fs/verify/overrides/mon-debug.yaml6
l---------qa/suites/fs/verify/overrides/session_timeout.yaml1
l---------qa/suites/fs/verify/overrides/whitelist_health.yaml1
l---------qa/suites/fs/verify/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/verify/tasks/.qa1
l---------qa/suites/fs/verify/tasks/cfuse_workunit_suites_dbench.yaml1
l---------qa/suites/fs/verify/tasks/cfuse_workunit_suites_fsstress.yaml1
l---------qa/suites/fs/verify/validater/.qa1
-rw-r--r--qa/suites/fs/verify/validater/lockdep.yaml5
-rw-r--r--qa/suites/fs/verify/validater/valgrind.yaml29
l---------qa/suites/hadoop/.qa1
-rw-r--r--qa/suites/hadoop/basic/%0
l---------qa/suites/hadoop/basic/.qa1
l---------qa/suites/hadoop/basic/clusters/.qa1
-rw-r--r--qa/suites/hadoop/basic/clusters/fixed-3.yaml13
l---------qa/suites/hadoop/basic/distros/.qa1
l---------qa/suites/hadoop/basic/distros/ubuntu_latest.yaml1
l---------qa/suites/hadoop/basic/filestore-xfs.yaml1
l---------qa/suites/hadoop/basic/tasks/.qa1
-rw-r--r--qa/suites/hadoop/basic/tasks/repl.yaml8
-rw-r--r--qa/suites/hadoop/basic/tasks/terasort.yaml10
-rw-r--r--qa/suites/hadoop/basic/tasks/wordcount.yaml8
l---------qa/suites/kcephfs/.qa1
-rw-r--r--qa/suites/kcephfs/cephfs/%0
l---------qa/suites/kcephfs/cephfs/.qa1
l---------qa/suites/kcephfs/cephfs/begin.yaml1
l---------qa/suites/kcephfs/cephfs/clusters/.qa1
l---------qa/suites/kcephfs/cephfs/clusters/1-mds-1-client.yaml1
l---------qa/suites/kcephfs/cephfs/conf1
l---------qa/suites/kcephfs/cephfs/inline/.qa1
-rw-r--r--qa/suites/kcephfs/cephfs/inline/no.yaml0
-rw-r--r--qa/suites/kcephfs/cephfs/inline/yes.yaml4
l---------qa/suites/kcephfs/cephfs/kclient1
l---------qa/suites/kcephfs/cephfs/objectstore-ec1
-rw-r--r--qa/suites/kcephfs/cephfs/overrides/+0
l---------qa/suites/kcephfs/cephfs/overrides/.qa1
l---------qa/suites/kcephfs/cephfs/overrides/frag_enable.yaml1
l---------qa/suites/kcephfs/cephfs/overrides/log-config.yaml1
l---------qa/suites/kcephfs/cephfs/overrides/osd-asserts.yaml1
l---------qa/suites/kcephfs/cephfs/overrides/whitelist_health.yaml1
l---------qa/suites/kcephfs/cephfs/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/kcephfs/cephfs/tasks/.qa1
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_direct_io.yaml6
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_kernel_untar_build.yaml5
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_misc.yaml5
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_o_trunc.yaml6
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_snaps.yaml5
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_dbench.yaml5
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_ffsb.yaml10
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_fsstress.yaml5
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_fsx.yaml5
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_fsync.yaml5
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_iozone.yaml5
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_pjd.yaml6
-rw-r--r--qa/suites/kcephfs/cephfs/tasks/kclient_workunit_trivial_sync.yaml4
-rw-r--r--qa/suites/kcephfs/mixed-clients/%0
l---------qa/suites/kcephfs/mixed-clients/.qa1
l---------qa/suites/kcephfs/mixed-clients/begin.yaml1
l---------qa/suites/kcephfs/mixed-clients/clusters/.qa1
l---------qa/suites/kcephfs/mixed-clients/clusters/1-mds-2-client.yaml1
l---------qa/suites/kcephfs/mixed-clients/conf1
l---------qa/suites/kcephfs/mixed-clients/kclient-overrides1
l---------qa/suites/kcephfs/mixed-clients/objectstore-ec1
-rw-r--r--qa/suites/kcephfs/mixed-clients/overrides/+0
l---------qa/suites/kcephfs/mixed-clients/overrides/.qa1
l---------qa/suites/kcephfs/mixed-clients/overrides/frag_enable.yaml1
l---------qa/suites/kcephfs/mixed-clients/overrides/log-config.yaml1
l---------qa/suites/kcephfs/mixed-clients/overrides/osd-asserts.yaml1
l---------qa/suites/kcephfs/mixed-clients/overrides/whitelist_health.yaml1
l---------qa/suites/kcephfs/mixed-clients/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/kcephfs/mixed-clients/tasks/.qa1
-rw-r--r--qa/suites/kcephfs/mixed-clients/tasks/kernel_cfuse_workunits_dbench_iozone.yaml18
-rw-r--r--qa/suites/kcephfs/mixed-clients/tasks/kernel_cfuse_workunits_untarbuild_blogbench.yaml18
-rw-r--r--qa/suites/kcephfs/recovery/%0
l---------qa/suites/kcephfs/recovery/.qa1
l---------qa/suites/kcephfs/recovery/begin.yaml1
l---------qa/suites/kcephfs/recovery/clusters/.qa1
l---------qa/suites/kcephfs/recovery/clusters/1-mds-4-client.yaml1
l---------qa/suites/kcephfs/recovery/conf1
l---------qa/suites/kcephfs/recovery/kclient1
l---------qa/suites/kcephfs/recovery/objectstore-ec1
-rw-r--r--qa/suites/kcephfs/recovery/overrides/+0
l---------qa/suites/kcephfs/recovery/overrides/.qa1
l---------qa/suites/kcephfs/recovery/overrides/frag_enable.yaml1
l---------qa/suites/kcephfs/recovery/overrides/log-config.yaml1
l---------qa/suites/kcephfs/recovery/overrides/osd-asserts.yaml1
l---------qa/suites/kcephfs/recovery/overrides/whitelist_health.yaml1
l---------qa/suites/kcephfs/recovery/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/kcephfs/recovery/tasks/.qa1
-rw-r--r--qa/suites/kcephfs/recovery/tasks/auto-repair.yaml13
-rw-r--r--qa/suites/kcephfs/recovery/tasks/backtrace.yaml5
-rw-r--r--qa/suites/kcephfs/recovery/tasks/client-limits.yaml20
-rw-r--r--qa/suites/kcephfs/recovery/tasks/client-recovery.yaml15
-rw-r--r--qa/suites/kcephfs/recovery/tasks/damage.yaml27
-rw-r--r--qa/suites/kcephfs/recovery/tasks/data-scan.yaml19
-rw-r--r--qa/suites/kcephfs/recovery/tasks/failover.yaml12
-rw-r--r--qa/suites/kcephfs/recovery/tasks/forward-scrub.yaml14
-rw-r--r--qa/suites/kcephfs/recovery/tasks/journal-repair.yaml14
-rw-r--r--qa/suites/kcephfs/recovery/tasks/mds-flush.yaml5
-rw-r--r--qa/suites/kcephfs/recovery/tasks/mds-full.yaml29
-rw-r--r--qa/suites/kcephfs/recovery/tasks/pool-perm.yaml5
-rw-r--r--qa/suites/kcephfs/recovery/tasks/sessionmap.yaml10
-rw-r--r--qa/suites/kcephfs/recovery/tasks/strays.yaml5
-rw-r--r--qa/suites/kcephfs/recovery/tasks/volume-client.yaml9
-rw-r--r--qa/suites/kcephfs/thrash/%0
l---------qa/suites/kcephfs/thrash/.qa1
l---------qa/suites/kcephfs/thrash/begin.yaml1
l---------qa/suites/kcephfs/thrash/clusters/.qa1
l---------qa/suites/kcephfs/thrash/clusters/1-mds-1-client.yaml1
l---------qa/suites/kcephfs/thrash/conf1
l---------qa/suites/kcephfs/thrash/kclient1
l---------qa/suites/kcephfs/thrash/objectstore-ec1
-rw-r--r--qa/suites/kcephfs/thrash/overrides/+0
l---------qa/suites/kcephfs/thrash/overrides/.qa1
l---------qa/suites/kcephfs/thrash/overrides/frag_enable.yaml1
l---------qa/suites/kcephfs/thrash/overrides/log-config.yaml1
l---------qa/suites/kcephfs/thrash/overrides/osd-asserts.yaml1
l---------qa/suites/kcephfs/thrash/overrides/thrash-health-whitelist.yaml1
l---------qa/suites/kcephfs/thrash/overrides/whitelist_health.yaml1
l---------qa/suites/kcephfs/thrash/overrides/whitelist_wrongly_marked_down.yaml1
l---------qa/suites/kcephfs/thrash/thrashers/.qa1
-rw-r--r--qa/suites/kcephfs/thrash/thrashers/default.yaml7
-rw-r--r--qa/suites/kcephfs/thrash/thrashers/mds.yaml7
-rw-r--r--qa/suites/kcephfs/thrash/thrashers/mon.yaml9
l---------qa/suites/kcephfs/thrash/workloads/.qa1
-rw-r--r--qa/suites/kcephfs/thrash/workloads/kclient_workunit_suites_ffsb.yaml13
-rw-r--r--qa/suites/kcephfs/thrash/workloads/kclient_workunit_suites_iozone.yaml5
l---------qa/suites/krbd/.qa1
-rw-r--r--qa/suites/krbd/basic/%0
l---------qa/suites/krbd/basic/.qa1
l---------qa/suites/krbd/basic/bluestore-bitmap.yaml1
l---------qa/suites/krbd/basic/ceph/.qa1
-rw-r--r--qa/suites/krbd/basic/ceph/ceph.yaml3
l---------qa/suites/krbd/basic/clusters/.qa1
l---------qa/suites/krbd/basic/clusters/fixed-1.yaml1
-rw-r--r--qa/suites/krbd/basic/conf.yaml7
l---------qa/suites/krbd/basic/ms_mode/.qa1
-rw-r--r--qa/suites/krbd/basic/ms_mode/crc.yaml5
-rw-r--r--qa/suites/krbd/basic/ms_mode/legacy.yaml5
-rw-r--r--qa/suites/krbd/basic/ms_mode/secure.yaml5
l---------qa/suites/krbd/basic/tasks/.qa1
-rw-r--r--qa/suites/krbd/basic/tasks/krbd_deep_flatten.yaml5
-rw-r--r--qa/suites/krbd/basic/tasks/krbd_discard.yaml9
-rw-r--r--qa/suites/krbd/basic/tasks/krbd_huge_image.yaml5
-rw-r--r--qa/suites/krbd/basic/tasks/krbd_msgr_segments.yaml5
-rw-r--r--qa/suites/krbd/basic/tasks/krbd_parent_overlap.yaml5
-rw-r--r--qa/suites/krbd/basic/tasks/krbd_read_only.yaml6
-rw-r--r--qa/suites/krbd/basic/tasks/krbd_whole_object_zeroout.yaml5
-rw-r--r--qa/suites/krbd/fsx/%0
l---------qa/suites/krbd/fsx/.qa1
l---------qa/suites/krbd/fsx/ceph/.qa1
-rw-r--r--qa/suites/krbd/fsx/ceph/ceph.yaml3
l---------qa/suites/krbd/fsx/clusters/.qa1
-rw-r--r--qa/suites/krbd/fsx/clusters/3-node.yaml14
-rw-r--r--qa/suites/krbd/fsx/conf.yaml5
l---------qa/suites/krbd/fsx/ms_mode$/.qa1
-rw-r--r--qa/suites/krbd/fsx/ms_mode$/crc.yaml5
-rw-r--r--qa/suites/krbd/fsx/ms_mode$/legacy.yaml5
-rw-r--r--qa/suites/krbd/fsx/ms_mode$/prefer-crc.yaml5
-rw-r--r--qa/suites/krbd/fsx/ms_mode$/secure.yaml5
l---------qa/suites/krbd/fsx/objectstore/.qa1
l---------qa/suites/krbd/fsx/objectstore/bluestore-bitmap.yaml1
l---------qa/suites/krbd/fsx/objectstore/filestore-xfs.yaml1
l---------qa/suites/krbd/fsx/striping/.qa1
-rw-r--r--qa/suites/krbd/fsx/striping/default/%0
l---------qa/suites/krbd/fsx/striping/default/.qa1
l---------qa/suites/krbd/fsx/striping/default/msgr-failures/.qa1
-rw-r--r--qa/suites/krbd/fsx/striping/default/msgr-failures/few.yaml7
-rw-r--r--qa/suites/krbd/fsx/striping/default/msgr-failures/many.yaml7
-rw-r--r--qa/suites/krbd/fsx/striping/default/randomized-striping-off.yaml3
-rw-r--r--qa/suites/krbd/fsx/striping/fancy/%0
l---------qa/suites/krbd/fsx/striping/fancy/.qa1
l---------qa/suites/krbd/fsx/striping/fancy/msgr-failures/.qa1
-rw-r--r--qa/suites/krbd/fsx/striping/fancy/msgr-failures/few.yaml7
-rw-r--r--qa/suites/krbd/fsx/striping/fancy/randomized-striping-on.yaml3
l---------qa/suites/krbd/fsx/tasks/.qa1
-rw-r--r--qa/suites/krbd/fsx/tasks/fsx-1-client.yaml10
-rw-r--r--qa/suites/krbd/fsx/tasks/fsx-3-client.yaml10
-rw-r--r--qa/suites/krbd/rbd-nomount/%0
l---------qa/suites/krbd/rbd-nomount/.qa1
l---------qa/suites/krbd/rbd-nomount/bluestore-bitmap.yaml1
l---------qa/suites/krbd/rbd-nomount/clusters/.qa1
l---------qa/suites/krbd/rbd-nomount/clusters/fixed-3.yaml1
-rw-r--r--qa/suites/krbd/rbd-nomount/conf.yaml7
l---------qa/suites/krbd/rbd-nomount/install/.qa1
-rw-r--r--qa/suites/krbd/rbd-nomount/install/ceph.yaml3
l---------qa/suites/krbd/rbd-nomount/ms_mode/.qa1
-rw-r--r--qa/suites/krbd/rbd-nomount/ms_mode/crc.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/ms_mode/legacy.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/ms_mode/secure.yaml5
l---------qa/suites/krbd/rbd-nomount/msgr-failures/.qa1
-rw-r--r--qa/suites/krbd/rbd-nomount/msgr-failures/few.yaml7
-rw-r--r--qa/suites/krbd/rbd-nomount/msgr-failures/many.yaml7
l---------qa/suites/krbd/rbd-nomount/tasks/.qa1
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/krbd_data_pool.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/krbd_exclusive_option.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/krbd_fallocate.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/krbd_latest_osdmap_on_map.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/krbd_namespaces.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/krbd_udev_enumerate.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/krbd_udev_netlink_enobufs.yaml10
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/krbd_udev_netns.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/krbd_udev_symlinks.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/rbd_concurrent.yaml10
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/rbd_huge_tickets.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/rbd_image_read.yaml15
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/rbd_kernel.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/rbd_map_snapshot_io.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/rbd_map_unmap.yaml5
-rw-r--r--qa/suites/krbd/rbd-nomount/tasks/rbd_simple_big.yaml6
-rw-r--r--qa/suites/krbd/rbd/%0
l---------qa/suites/krbd/rbd/.qa1
l---------qa/suites/krbd/rbd/bluestore-bitmap.yaml1
l---------qa/suites/krbd/rbd/clusters/.qa1
l---------qa/suites/krbd/rbd/clusters/fixed-3.yaml1
-rw-r--r--qa/suites/krbd/rbd/conf.yaml7
l---------qa/suites/krbd/rbd/ms_mode/.qa1
-rw-r--r--qa/suites/krbd/rbd/ms_mode/crc.yaml5
-rw-r--r--qa/suites/krbd/rbd/ms_mode/legacy.yaml5
-rw-r--r--qa/suites/krbd/rbd/ms_mode/secure.yaml5
l---------qa/suites/krbd/rbd/msgr-failures/.qa1
-rw-r--r--qa/suites/krbd/rbd/msgr-failures/few.yaml7
-rw-r--r--qa/suites/krbd/rbd/msgr-failures/many.yaml7
l---------qa/suites/krbd/rbd/tasks/.qa1
-rw-r--r--qa/suites/krbd/rbd/tasks/rbd_fio.yaml11
-rw-r--r--qa/suites/krbd/rbd/tasks/rbd_workunit_kernel_untar_build.yaml12
-rw-r--r--qa/suites/krbd/rbd/tasks/rbd_workunit_suites_dbench.yaml9
-rw-r--r--qa/suites/krbd/rbd/tasks/rbd_workunit_suites_ffsb.yaml10
-rw-r--r--qa/suites/krbd/rbd/tasks/rbd_workunit_suites_fsstress.yaml9
-rw-r--r--qa/suites/krbd/rbd/tasks/rbd_workunit_suites_fsstress_ext4.yaml10
-rw-r--r--qa/suites/krbd/rbd/tasks/rbd_workunit_suites_fsx.yaml9
-rw-r--r--qa/suites/krbd/rbd/tasks/rbd_workunit_suites_iozone.yaml10
-rw-r--r--qa/suites/krbd/rbd/tasks/rbd_workunit_trivial_sync.yaml8
-rw-r--r--qa/suites/krbd/singleton/%0
l---------qa/suites/krbd/singleton/.qa1
l---------qa/suites/krbd/singleton/bluestore-bitmap.yaml1
-rw-r--r--qa/suites/krbd/singleton/conf.yaml7
l---------qa/suites/krbd/singleton/ms_mode$/.qa1
-rw-r--r--qa/suites/krbd/singleton/ms_mode$/crc.yaml5
-rw-r--r--qa/suites/krbd/singleton/ms_mode$/legacy.yaml5
-rw-r--r--qa/suites/krbd/singleton/ms_mode$/prefer-crc.yaml5
-rw-r--r--qa/suites/krbd/singleton/ms_mode$/secure.yaml5
l---------qa/suites/krbd/singleton/msgr-failures/.qa1
-rw-r--r--qa/suites/krbd/singleton/msgr-failures/few.yaml7
-rw-r--r--qa/suites/krbd/singleton/msgr-failures/many.yaml7
l---------qa/suites/krbd/singleton/tasks/.qa1
-rw-r--r--qa/suites/krbd/singleton/tasks/rbd_xfstests.yaml38
-rw-r--r--qa/suites/krbd/thrash/%0
l---------qa/suites/krbd/thrash/.qa1
l---------qa/suites/krbd/thrash/bluestore-bitmap.yaml1
l---------qa/suites/krbd/thrash/ceph/.qa1
-rw-r--r--qa/suites/krbd/thrash/ceph/ceph.yaml3
l---------qa/suites/krbd/thrash/clusters/.qa1
l---------qa/suites/krbd/thrash/clusters/fixed-3.yaml1
-rw-r--r--qa/suites/krbd/thrash/conf.yaml7
l---------qa/suites/krbd/thrash/ms_mode$/.qa1
-rw-r--r--qa/suites/krbd/thrash/ms_mode$/crc.yaml5
-rw-r--r--qa/suites/krbd/thrash/ms_mode$/legacy.yaml5
-rw-r--r--qa/suites/krbd/thrash/ms_mode$/prefer-crc.yaml5
-rw-r--r--qa/suites/krbd/thrash/ms_mode$/secure.yaml5
l---------qa/suites/krbd/thrash/thrashers/.qa1
-rw-r--r--qa/suites/krbd/thrash/thrashers/backoff.yaml15
-rw-r--r--qa/suites/krbd/thrash/thrashers/mon-thrasher.yaml8
-rw-r--r--qa/suites/krbd/thrash/thrashers/pggrow.yaml10
-rw-r--r--qa/suites/krbd/thrash/thrashers/upmap.yaml17
l---------qa/suites/krbd/thrash/thrashosds-health.yaml1
l---------qa/suites/krbd/thrash/workloads/.qa1
-rw-r--r--qa/suites/krbd/thrash/workloads/rbd_fio.yaml11
-rw-r--r--qa/suites/krbd/thrash/workloads/rbd_workunit_suites_ffsb.yaml8
-rw-r--r--qa/suites/krbd/unmap/%0
l---------qa/suites/krbd/unmap/.qa1
l---------qa/suites/krbd/unmap/ceph/.qa1
-rw-r--r--qa/suites/krbd/unmap/ceph/ceph.yaml14
l---------qa/suites/krbd/unmap/clusters/.qa1
-rw-r--r--qa/suites/krbd/unmap/clusters/separate-client.yaml16
-rw-r--r--qa/suites/krbd/unmap/conf.yaml5
l---------qa/suites/krbd/unmap/filestore-xfs.yaml1
l---------qa/suites/krbd/unmap/kernels/.qa1
-rw-r--r--qa/suites/krbd/unmap/kernels/pre-single-major.yaml10
-rw-r--r--qa/suites/krbd/unmap/kernels/single-major-off.yaml6
-rw-r--r--qa/suites/krbd/unmap/kernels/single-major-on.yaml6
l---------qa/suites/krbd/unmap/tasks/.qa1
-rw-r--r--qa/suites/krbd/unmap/tasks/unmap.yaml5
l---------qa/suites/krbd/wac/.qa1
-rw-r--r--qa/suites/krbd/wac/sysfs/%0
l---------qa/suites/krbd/wac/sysfs/.qa1
l---------qa/suites/krbd/wac/sysfs/bluestore-bitmap.yaml1
l---------qa/suites/krbd/wac/sysfs/ceph/.qa1
-rw-r--r--qa/suites/krbd/wac/sysfs/ceph/ceph.yaml3
l---------qa/suites/krbd/wac/sysfs/clusters/.qa1
l---------qa/suites/krbd/wac/sysfs/clusters/fixed-1.yaml1
-rw-r--r--qa/suites/krbd/wac/sysfs/conf.yaml7
l---------qa/suites/krbd/wac/sysfs/tasks/.qa1
-rw-r--r--qa/suites/krbd/wac/sysfs/tasks/stable_writes.yaml5
-rw-r--r--qa/suites/krbd/wac/wac/%0
l---------qa/suites/krbd/wac/wac/.qa1
l---------qa/suites/krbd/wac/wac/bluestore-bitmap.yaml1
l---------qa/suites/krbd/wac/wac/ceph/.qa1
-rw-r--r--qa/suites/krbd/wac/wac/ceph/ceph.yaml3
l---------qa/suites/krbd/wac/wac/clusters/.qa1
l---------qa/suites/krbd/wac/wac/clusters/fixed-3.yaml1
-rw-r--r--qa/suites/krbd/wac/wac/conf.yaml7
l---------qa/suites/krbd/wac/wac/tasks/.qa1
-rw-r--r--qa/suites/krbd/wac/wac/tasks/wac.yaml11
l---------qa/suites/krbd/wac/wac/verify/.qa1
-rw-r--r--qa/suites/krbd/wac/wac/verify/many-resets.yaml12
-rw-r--r--qa/suites/krbd/wac/wac/verify/no-resets.yaml5
l---------qa/suites/marginal/.qa1
-rw-r--r--qa/suites/marginal/basic/%0
l---------qa/suites/marginal/basic/.qa1
l---------qa/suites/marginal/basic/clusters/.qa1
-rw-r--r--qa/suites/marginal/basic/clusters/fixed-3.yaml4
l---------qa/suites/marginal/basic/tasks/.qa1
-rw-r--r--qa/suites/marginal/basic/tasks/kclient_workunit_suites_blogbench.yaml8
-rw-r--r--qa/suites/marginal/basic/tasks/kclient_workunit_suites_fsx.yaml8
-rw-r--r--qa/suites/marginal/fs-misc/%0
l---------qa/suites/marginal/fs-misc/.qa1
l---------qa/suites/marginal/fs-misc/clusters/.qa1
-rw-r--r--qa/suites/marginal/fs-misc/clusters/two_clients.yaml4
l---------qa/suites/marginal/fs-misc/tasks/.qa1
-rw-r--r--qa/suites/marginal/fs-misc/tasks/locktest.yaml5
-rw-r--r--qa/suites/marginal/mds_restart/%0
l---------qa/suites/marginal/mds_restart/.qa1
l---------qa/suites/marginal/mds_restart/clusters/.qa1
-rw-r--r--qa/suites/marginal/mds_restart/clusters/one_mds.yaml4
l---------qa/suites/marginal/mds_restart/tasks/.qa1
-rw-r--r--qa/suites/marginal/mds_restart/tasks/restart-workunit-backtraces.yaml11
-rw-r--r--qa/suites/marginal/multimds/%0
l---------qa/suites/marginal/multimds/.qa1
l---------qa/suites/marginal/multimds/clusters/.qa1
-rw-r--r--qa/suites/marginal/multimds/clusters/3-node-3-mds.yaml5
-rw-r--r--qa/suites/marginal/multimds/clusters/3-node-9-mds.yaml5
l---------qa/suites/marginal/multimds/mounts/.qa1
-rw-r--r--qa/suites/marginal/multimds/mounts/ceph-fuse.yaml7
-rw-r--r--qa/suites/marginal/multimds/mounts/kclient.yaml4
l---------qa/suites/marginal/multimds/tasks/.qa1
-rw-r--r--qa/suites/marginal/multimds/tasks/workunit_misc.yaml5
-rw-r--r--qa/suites/marginal/multimds/tasks/workunit_suites_blogbench.yaml5
-rw-r--r--qa/suites/marginal/multimds/tasks/workunit_suites_dbench.yaml5
-rw-r--r--qa/suites/marginal/multimds/tasks/workunit_suites_fsstress.yaml5
-rw-r--r--qa/suites/marginal/multimds/tasks/workunit_suites_fsync.yaml5
-rw-r--r--qa/suites/marginal/multimds/tasks/workunit_suites_pjd.yaml11
-rw-r--r--qa/suites/marginal/multimds/tasks/workunit_suites_truncate_delay.yaml15
l---------qa/suites/marginal/multimds/thrash/.qa1
-rw-r--r--qa/suites/marginal/multimds/thrash/exports.yaml5
-rw-r--r--qa/suites/marginal/multimds/thrash/normal.yaml0
l---------qa/suites/mixed-clients/.qa1
l---------qa/suites/mixed-clients/basic/.qa1
l---------qa/suites/mixed-clients/basic/clusters/.qa1
-rw-r--r--qa/suites/mixed-clients/basic/clusters/fixed-3.yaml4
l---------qa/suites/mixed-clients/basic/objectstore1
l---------qa/suites/mixed-clients/basic/tasks/.qa1
-rw-r--r--qa/suites/mixed-clients/basic/tasks/kernel_cfuse_workunits_dbench_iozone.yaml26
-rw-r--r--qa/suites/mixed-clients/basic/tasks/kernel_cfuse_workunits_untarbuild_blogbench.yaml26
l---------qa/suites/multimds/.qa1
-rw-r--r--qa/suites/multimds/basic/%0
l---------qa/suites/multimds/basic/.qa1
l---------qa/suites/multimds/basic/0-supported-random-distro$1
l---------qa/suites/multimds/basic/begin.yaml1
l---------qa/suites/multimds/basic/clusters/.qa1
l---------qa/suites/multimds/basic/clusters/3-mds.yaml1
l---------qa/suites/multimds/basic/clusters/9-mds.yaml1
l---------qa/suites/multimds/basic/conf1
l---------qa/suites/multimds/basic/inline1
l---------qa/suites/multimds/basic/mount1
l---------qa/suites/multimds/basic/objectstore-ec1
-rw-r--r--qa/suites/multimds/basic/overrides/%0
l---------qa/suites/multimds/basic/overrides/.qa1
l---------qa/suites/multimds/basic/overrides/basic1
l---------qa/suites/multimds/basic/overrides/fuse-default-perm-no.yaml1
l---------qa/suites/multimds/basic/q_check_counter/.qa1
-rw-r--r--qa/suites/multimds/basic/q_check_counter/check_counter.yaml8
l---------qa/suites/multimds/basic/tasks/.qa1
-rw-r--r--qa/suites/multimds/basic/tasks/cephfs_test_exports.yaml5
-rw-r--r--qa/suites/multimds/basic/tasks/cephfs_test_snapshots.yaml13
-rw-r--r--qa/suites/multimds/basic/tasks/cfuse_workunit_kernel_untar_build.yaml10
-rw-r--r--qa/suites/multimds/basic/tasks/cfuse_workunit_misc.yaml6
-rw-r--r--qa/suites/multimds/basic/tasks/cfuse_workunit_norstats.yaml11
l---------qa/suites/multimds/basic/tasks/cfuse_workunit_suites_blogbench.yaml1
l---------qa/suites/multimds/basic/tasks/cfuse_workunit_suites_dbench.yaml1
l---------qa/suites/multimds/basic/tasks/cfuse_workunit_suites_ffsb.yaml1
l---------qa/suites/multimds/basic/tasks/cfuse_workunit_suites_fsstress.yaml1
-rw-r--r--qa/suites/multimds/basic/tasks/cfuse_workunit_suites_fsx.yaml5
-rw-r--r--qa/suites/multimds/basic/tasks/cfuse_workunit_suites_pjd.yaml12
-rw-r--r--qa/suites/multimds/thrash/%0
l---------qa/suites/multimds/thrash/.qa1
l---------qa/suites/multimds/thrash/0-supported-random-distro$1
l---------qa/suites/multimds/thrash/begin.yaml1
l---------qa/suites/multimds/thrash/ceph-thrash1
l---------qa/suites/multimds/thrash/clusters/.qa1
-rw-r--r--qa/suites/multimds/thrash/clusters/3-mds-2-standby.yaml4
-rw-r--r--qa/suites/multimds/thrash/clusters/9-mds-3-standby.yaml4
l---------qa/suites/multimds/thrash/conf1
l---------qa/suites/multimds/thrash/mount1
l---------qa/suites/multimds/thrash/msgr-failures1
l---------qa/suites/multimds/thrash/objectstore-ec1
-rw-r--r--qa/suites/multimds/thrash/overrides/%0
l---------qa/suites/multimds/thrash/overrides/.qa1
l---------qa/suites/multimds/thrash/overrides/fuse-default-perm-no.yaml1
l---------qa/suites/multimds/thrash/overrides/thrash1
-rw-r--r--qa/suites/multimds/thrash/overrides/thrash_debug.yaml7
l---------qa/suites/multimds/thrash/tasks/.qa1
l---------qa/suites/multimds/thrash/tasks/cfuse_workunit_suites_fsstress.yaml1
l---------qa/suites/multimds/thrash/tasks/cfuse_workunit_suites_pjd.yaml1
-rw-r--r--qa/suites/multimds/verify/%0
l---------qa/suites/multimds/verify/.qa1
l---------qa/suites/multimds/verify/begin.yaml1
l---------qa/suites/multimds/verify/centos_latest.yaml1
l---------qa/suites/multimds/verify/clusters/.qa1
l---------qa/suites/multimds/verify/clusters/3-mds.yaml1
l---------qa/suites/multimds/verify/clusters/9-mds.yaml1
l---------qa/suites/multimds/verify/conf1
l---------qa/suites/multimds/verify/mount1
l---------qa/suites/multimds/verify/objectstore-ec1
-rw-r--r--qa/suites/multimds/verify/overrides/%0
l---------qa/suites/multimds/verify/overrides/.qa1
l---------qa/suites/multimds/verify/overrides/fuse-default-perm-no.yaml1
l---------qa/suites/multimds/verify/overrides/verify1
l---------qa/suites/multimds/verify/tasks1
l---------qa/suites/multimds/verify/validater1
-rw-r--r--qa/suites/perf-basic/%0
l---------qa/suites/perf-basic/.qa1
-rw-r--r--qa/suites/perf-basic/ceph.yaml24
l---------qa/suites/perf-basic/objectstore/.qa1
-rw-r--r--qa/suites/perf-basic/objectstore/bluestore.yaml15
-rw-r--r--qa/suites/perf-basic/objectstore/filestore-xfs.yaml15
l---------qa/suites/perf-basic/settings/.qa1
-rw-r--r--qa/suites/perf-basic/settings/optimized.yaml80
l---------qa/suites/perf-basic/supported-all-distro1
l---------qa/suites/perf-basic/workloads/.qa1
-rw-r--r--qa/suites/perf-basic/workloads/cosbench_64K_write.yaml31
-rw-r--r--qa/suites/perf-basic/workloads/fio_4K_rand_write.yaml30
-rw-r--r--qa/suites/perf-basic/workloads/radosbench_4K_write.yaml29
l---------qa/suites/powercycle/.qa1
-rw-r--r--qa/suites/powercycle/osd/%0
l---------qa/suites/powercycle/osd/.qa1
l---------qa/suites/powercycle/osd/clusters/.qa1
-rw-r--r--qa/suites/powercycle/osd/clusters/3osd-1per-target.yaml5
l---------qa/suites/powercycle/osd/objectstore1
l---------qa/suites/powercycle/osd/powercycle/.qa1
-rw-r--r--qa/suites/powercycle/osd/powercycle/default.yaml10
l---------qa/suites/powercycle/osd/supported-all-distro1
l---------qa/suites/powercycle/osd/tasks/.qa1
-rw-r--r--qa/suites/powercycle/osd/tasks/admin_socket_objecter_requests.yaml13
-rw-r--r--qa/suites/powercycle/osd/tasks/cfuse_workunit_kernel_untar_build.yaml12
-rw-r--r--qa/suites/powercycle/osd/tasks/cfuse_workunit_misc.yaml7
-rw-r--r--qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_ffsb.yaml14
-rw-r--r--qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsstress.yaml6
-rw-r--r--qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsx.yaml7
-rw-r--r--qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsync.yaml12
-rw-r--r--qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_pjd.yaml12
-rw-r--r--qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_truncate_delay.yaml15
-rw-r--r--qa/suites/powercycle/osd/tasks/rados_api_tests.yaml15
-rw-r--r--qa/suites/powercycle/osd/tasks/radosbench.yaml38
-rw-r--r--qa/suites/powercycle/osd/tasks/readwrite.yaml9
-rw-r--r--qa/suites/powercycle/osd/tasks/snaps-few-objects.yaml13
-rw-r--r--qa/suites/powercycle/osd/tasks/snaps-many-objects.yaml13
l---------qa/suites/powercycle/osd/thrashosds-health.yaml1
-rw-r--r--qa/suites/powercycle/osd/whitelist_health.yaml7
l---------qa/suites/rados/.qa1
-rw-r--r--qa/suites/rados/basic/%0
l---------qa/suites/rados/basic/.qa1
-rw-r--r--qa/suites/rados/basic/ceph.yaml13
-rw-r--r--qa/suites/rados/basic/clusters/+0
l---------qa/suites/rados/basic/clusters/.qa1
l---------qa/suites/rados/basic/clusters/fixed-2.yaml1
-rw-r--r--qa/suites/rados/basic/clusters/openstack.yaml4
l---------qa/suites/rados/basic/msgr1
l---------qa/suites/rados/basic/msgr-failures/.qa1
-rw-r--r--qa/suites/rados/basic/msgr-failures/few.yaml7
-rw-r--r--qa/suites/rados/basic/msgr-failures/many.yaml7
l---------qa/suites/rados/basic/objectstore1
l---------qa/suites/rados/basic/rados.yaml1
l---------qa/suites/rados/basic/supported-random-distro$1
l---------qa/suites/rados/basic/tasks/.qa1
-rw-r--r--qa/suites/rados/basic/tasks/rados_api_tests.yaml24
-rw-r--r--qa/suites/rados/basic/tasks/rados_cls_all.yaml13
-rw-r--r--qa/suites/rados/basic/tasks/rados_python.yaml15
-rw-r--r--qa/suites/rados/basic/tasks/rados_stress_watch.yaml11
-rw-r--r--qa/suites/rados/basic/tasks/rados_striper.yaml7
-rw-r--r--qa/suites/rados/basic/tasks/rados_workunit_loadgen_big.yaml11
-rw-r--r--qa/suites/rados/basic/tasks/rados_workunit_loadgen_mix.yaml11
-rw-r--r--qa/suites/rados/basic/tasks/rados_workunit_loadgen_mostlyread.yaml11
-rw-r--r--qa/suites/rados/basic/tasks/readwrite.yaml17
-rw-r--r--qa/suites/rados/basic/tasks/repair_test.yaml31
-rw-r--r--qa/suites/rados/basic/tasks/rgw_snaps.yaml41
-rw-r--r--qa/suites/rados/basic/tasks/scrub_test.yaml30
-rw-r--r--qa/suites/rados/dashboard/%0
l---------qa/suites/rados/dashboard/.qa1
-rw-r--r--qa/suites/rados/dashboard/clusters/+0
l---------qa/suites/rados/dashboard/clusters/.qa1
l---------qa/suites/rados/dashboard/clusters/2-node-mgr.yaml1
l---------qa/suites/rados/dashboard/debug/.qa1
l---------qa/suites/rados/dashboard/debug/mgr.yaml1
l---------qa/suites/rados/dashboard/objectstore1
l---------qa/suites/rados/dashboard/supported-random-distro$1
l---------qa/suites/rados/dashboard/tasks/.qa1
-rw-r--r--qa/suites/rados/dashboard/tasks/dashboard.yaml51
-rw-r--r--qa/suites/rados/mgr/%0
l---------qa/suites/rados/mgr/.qa1
-rw-r--r--qa/suites/rados/mgr/clusters/+0
l---------qa/suites/rados/mgr/clusters/.qa1
l---------qa/suites/rados/mgr/clusters/2-node-mgr.yaml1
l---------qa/suites/rados/mgr/debug/.qa1
l---------qa/suites/rados/mgr/debug/mgr.yaml1
l---------qa/suites/rados/mgr/objectstore1
l---------qa/suites/rados/mgr/supported-random-distro$1
l---------qa/suites/rados/mgr/tasks/.qa1
-rw-r--r--qa/suites/rados/mgr/tasks/crash.yaml17
-rw-r--r--qa/suites/rados/mgr/tasks/failover.yaml16
-rw-r--r--qa/suites/rados/mgr/tasks/insights.yaml19
-rw-r--r--qa/suites/rados/mgr/tasks/module_selftest.yaml25
-rw-r--r--qa/suites/rados/mgr/tasks/orchestrator_cli.yaml18
-rw-r--r--qa/suites/rados/mgr/tasks/progress.yaml24
-rw-r--r--qa/suites/rados/mgr/tasks/prometheus.yaml16
-rw-r--r--qa/suites/rados/mgr/tasks/ssh_orchestrator.yaml18
-rw-r--r--qa/suites/rados/mgr/tasks/workunits.yaml16
-rw-r--r--qa/suites/rados/monthrash/%0
l---------qa/suites/rados/monthrash/.qa1
-rw-r--r--qa/suites/rados/monthrash/ceph.yaml25
l---------qa/suites/rados/monthrash/clusters/.qa1
-rw-r--r--qa/suites/rados/monthrash/clusters/3-mons.yaml7
-rw-r--r--qa/suites/rados/monthrash/clusters/9-mons.yaml7
l---------qa/suites/rados/monthrash/msgr1
l---------qa/suites/rados/monthrash/msgr-failures/.qa1
-rw-r--r--qa/suites/rados/monthrash/msgr-failures/few.yaml7
-rw-r--r--qa/suites/rados/monthrash/msgr-failures/mon-delay.yaml13
l---------qa/suites/rados/monthrash/objectstore1
l---------qa/suites/rados/monthrash/rados.yaml1
l---------qa/suites/rados/monthrash/supported-random-distro$1
l---------qa/suites/rados/monthrash/thrashers/.qa1
-rw-r--r--qa/suites/rados/monthrash/thrashers/force-sync-many.yaml12
-rw-r--r--qa/suites/rados/monthrash/thrashers/many.yaml16
-rw-r--r--qa/suites/rados/monthrash/thrashers/one.yaml9
-rw-r--r--qa/suites/rados/monthrash/thrashers/sync-many.yaml14
-rw-r--r--qa/suites/rados/monthrash/thrashers/sync.yaml13
l---------qa/suites/rados/monthrash/workloads/.qa1
-rw-r--r--qa/suites/rados/monthrash/workloads/pool-create-delete.yaml58
-rw-r--r--qa/suites/rados/monthrash/workloads/rados_5925.yaml9
-rw-r--r--qa/suites/rados/monthrash/workloads/rados_api_tests.yaml26
-rw-r--r--qa/suites/rados/monthrash/workloads/rados_mon_osdmap_prune.yaml22
-rw-r--r--qa/suites/rados/monthrash/workloads/rados_mon_workunits.yaml17
-rw-r--r--qa/suites/rados/monthrash/workloads/snaps-few-objects.yaml13
-rw-r--r--qa/suites/rados/multimon/%0
l---------qa/suites/rados/multimon/.qa1
l---------qa/suites/rados/multimon/clusters/.qa1
-rw-r--r--qa/suites/rados/multimon/clusters/21.yaml8
-rw-r--r--qa/suites/rados/multimon/clusters/3.yaml7
-rw-r--r--qa/suites/rados/multimon/clusters/6.yaml7
-rw-r--r--qa/suites/rados/multimon/clusters/9.yaml8
l---------qa/suites/rados/multimon/msgr1
l---------qa/suites/rados/multimon/msgr-failures/.qa1
-rw-r--r--qa/suites/rados/multimon/msgr-failures/few.yaml7
-rw-r--r--qa/suites/rados/multimon/msgr-failures/many.yaml8
-rw-r--r--qa/suites/rados/multimon/no_pools.yaml3
l---------qa/suites/rados/multimon/objectstore1
l---------qa/suites/rados/multimon/rados.yaml1
l---------qa/suites/rados/multimon/supported-random-distro$1
l---------qa/suites/rados/multimon/tasks/.qa1
-rw-r--r--qa/suites/rados/multimon/tasks/mon_clock_no_skews.yaml11
-rw-r--r--qa/suites/rados/multimon/tasks/mon_clock_with_skews.yaml24
-rw-r--r--qa/suites/rados/multimon/tasks/mon_recovery.yaml10
-rw-r--r--qa/suites/rados/objectstore/%0
l---------qa/suites/rados/objectstore/.qa1
l---------qa/suites/rados/objectstore/backends/.qa1
-rw-r--r--qa/suites/rados/objectstore/backends/alloc-hint.yaml22
-rw-r--r--qa/suites/rados/objectstore/backends/ceph_objectstore_tool.yaml25
-rw-r--r--qa/suites/rados/objectstore/backends/filejournal.yaml13
-rw-r--r--qa/suites/rados/objectstore/backends/filestore-idempotent-aio-journal.yaml14
-rw-r--r--qa/suites/rados/objectstore/backends/filestore-idempotent.yaml11
-rw-r--r--qa/suites/rados/objectstore/backends/fusestore.yaml9
-rw-r--r--qa/suites/rados/objectstore/backends/keyvaluedb.yaml8
-rw-r--r--qa/suites/rados/objectstore/backends/objectcacher-stress.yaml14
-rw-r--r--qa/suites/rados/objectstore/backends/objectstore.yaml12
l---------qa/suites/rados/objectstore/supported-random-distro$1
-rw-r--r--qa/suites/rados/perf/%0
l---------qa/suites/rados/perf/.qa1
-rw-r--r--qa/suites/rados/perf/ceph.yaml14
l---------qa/suites/rados/perf/distros/ubuntu_16.04.yaml1
l---------qa/suites/rados/perf/distros/ubuntu_latest.yaml1
l---------qa/suites/rados/perf/objectstore1
-rw-r--r--qa/suites/rados/perf/openstack.yaml4
l---------qa/suites/rados/perf/settings/.qa1
-rw-r--r--qa/suites/rados/perf/settings/optimized.yaml76
l---------qa/suites/rados/perf/workloads/.qa1
-rw-r--r--qa/suites/rados/perf/workloads/cosbench_64K_read_write.yaml26
-rw-r--r--qa/suites/rados/perf/workloads/cosbench_64K_write.yaml26
-rw-r--r--qa/suites/rados/perf/workloads/fio_4K_rand_read.yaml25
-rw-r--r--qa/suites/rados/perf/workloads/fio_4K_rand_rw.yaml25
-rw-r--r--qa/suites/rados/perf/workloads/fio_4M_rand_read.yaml25
-rw-r--r--qa/suites/rados/perf/workloads/fio_4M_rand_rw.yaml25
-rw-r--r--qa/suites/rados/perf/workloads/fio_4M_rand_write.yaml25
-rw-r--r--qa/suites/rados/perf/workloads/radosbench_4K_rand_read.yaml25
-rw-r--r--qa/suites/rados/perf/workloads/radosbench_4K_seq_read.yaml24
-rw-r--r--qa/suites/rados/perf/workloads/radosbench_4M_rand_read.yaml25
-rw-r--r--qa/suites/rados/perf/workloads/radosbench_4M_seq_read.yaml24
-rw-r--r--qa/suites/rados/perf/workloads/radosbench_4M_write.yaml24
-rw-r--r--qa/suites/rados/perf/workloads/sample_fio.yaml25
-rw-r--r--qa/suites/rados/perf/workloads/sample_radosbench.yaml24
-rw-r--r--qa/suites/rados/rest/%0
l---------qa/suites/rados/rest/.qa1
-rw-r--r--qa/suites/rados/rest/mgr-restful.yaml29
l---------qa/suites/rados/rest/supported-random-distro$1
-rw-r--r--qa/suites/rados/singleton-bluestore/%0
l---------qa/suites/rados/singleton-bluestore/.qa1
l---------qa/suites/rados/singleton-bluestore/all/.qa1
-rw-r--r--qa/suites/rados/singleton-bluestore/all/cephtool.yaml44
l---------qa/suites/rados/singleton-bluestore/msgr1
l---------qa/suites/rados/singleton-bluestore/msgr-failures/.qa1
-rw-r--r--qa/suites/rados/singleton-bluestore/msgr-failures/few.yaml7
-rw-r--r--qa/suites/rados/singleton-bluestore/msgr-failures/many.yaml7
l---------qa/suites/rados/singleton-bluestore/objectstore/.qa1
l---------qa/suites/rados/singleton-bluestore/objectstore/bluestore-bitmap.yaml1
l---------qa/suites/rados/singleton-bluestore/objectstore/bluestore-comp-lz4.yaml1
l---------qa/suites/rados/singleton-bluestore/objectstore/bluestore-comp-snappy.yaml1
l---------qa/suites/rados/singleton-bluestore/rados.yaml1
l---------qa/suites/rados/singleton-bluestore/supported-random-distro$1
l---------qa/suites/rados/singleton-flat/.qa1
-rw-r--r--qa/suites/rados/singleton-flat/valgrind-leaks.yaml36
-rw-r--r--qa/suites/rados/singleton-nomsgr/%0
l---------qa/suites/rados/singleton-nomsgr/.qa1
l---------qa/suites/rados/singleton-nomsgr/all/.qa1
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/admin_socket_output.yaml24
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/balancer.yaml10
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/cache-fs-trunc.yaml52
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/ceph-kvstore-tool.yaml21
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/ceph-post-file.yaml12
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/export-after-evict.yaml38
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/full-tiering.yaml38
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/health-warnings.yaml20
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/large-omap-object-warnings.yaml27
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/lazy_omap_stats_output.yaml16
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/librados_hello_world.yaml22
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/msgr.yaml21
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/multi-backfill-reject.yaml48
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/pool-access.yaml13
-rw-r--r--qa/suites/rados/singleton-nomsgr/all/recovery-unfound-found.yaml58
l---------qa/suites/rados/singleton-nomsgr/rados.yaml1
l---------qa/suites/rados/singleton-nomsgr/supported-random-distro$1
-rw-r--r--qa/suites/rados/singleton/%0
l---------qa/suites/rados/singleton/.qa1
l---------qa/suites/rados/singleton/all/.qa1
-rw-r--r--qa/suites/rados/singleton/all/admin-socket.yaml26
-rw-r--r--qa/suites/rados/singleton/all/deduptool.yaml26
-rw-r--r--qa/suites/rados/singleton/all/divergent_priors.yaml26
-rw-r--r--qa/suites/rados/singleton/all/divergent_priors2.yaml26
-rw-r--r--qa/suites/rados/singleton/all/dump-stuck.yaml19
-rw-r--r--qa/suites/rados/singleton/all/ec-lost-unfound.yaml26
-rw-r--r--qa/suites/rados/singleton/all/erasure-code-nonregression.yaml17
-rw-r--r--qa/suites/rados/singleton/all/lost-unfound-delete.yaml25
-rw-r--r--qa/suites/rados/singleton/all/lost-unfound.yaml25
-rw-r--r--qa/suites/rados/singleton/all/max-pg-per-osd.from-mon.yaml27
-rw-r--r--qa/suites/rados/singleton/all/max-pg-per-osd.from-primary.yaml32
-rw-r--r--qa/suites/rados/singleton/all/max-pg-per-osd.from-replica.yaml32
-rw-r--r--qa/suites/rados/singleton/all/mon-auth-caps.yaml17
-rw-r--r--qa/suites/rados/singleton/all/mon-config-key-caps.yaml17
-rw-r--r--qa/suites/rados/singleton/all/mon-config-keys.yaml20
-rw-r--r--qa/suites/rados/singleton/all/mon-config.yaml20
-rw-r--r--qa/suites/rados/singleton/all/mon-memory-target-compliance.yaml.disabled152
-rw-r--r--qa/suites/rados/singleton/all/osd-backfill.yaml26
-rw-r--r--qa/suites/rados/singleton/all/osd-recovery-incomplete.yaml28
-rw-r--r--qa/suites/rados/singleton/all/osd-recovery.yaml30
-rw-r--r--qa/suites/rados/singleton/all/peer.yaml25
-rw-r--r--qa/suites/rados/singleton/all/pg-autoscaler-progress-off.yaml42
-rw-r--r--qa/suites/rados/singleton/all/pg-autoscaler.yaml38
-rw-r--r--qa/suites/rados/singleton/all/pg-removal-interruption.yaml34
-rw-r--r--qa/suites/rados/singleton/all/radostool.yaml26
-rw-r--r--qa/suites/rados/singleton/all/random-eio.yaml44
-rw-r--r--qa/suites/rados/singleton/all/rebuild-mondb.yaml32
-rw-r--r--qa/suites/rados/singleton/all/recovery-preemption.yaml57
-rw-r--r--qa/suites/rados/singleton/all/resolve_stuck_peering.yaml17
-rw-r--r--qa/suites/rados/singleton/all/test-crash.yaml15
-rw-r--r--qa/suites/rados/singleton/all/test_envlibrados_for_rocksdb.yaml19
-rw-r--r--qa/suites/rados/singleton/all/thrash-backfill-full.yaml50
-rw-r--r--qa/suites/rados/singleton/all/thrash-eio.yaml47
-rw-r--r--qa/suites/rados/singleton/all/thrash-rados/+0
l---------qa/suites/rados/singleton/all/thrash-rados/.qa1
-rw-r--r--qa/suites/rados/singleton/all/thrash-rados/thrash-rados.yaml27
l---------qa/suites/rados/singleton/all/thrash-rados/thrashosds-health.yaml1
-rw-r--r--qa/suites/rados/singleton/all/thrash_cache_writeback_proxy_none.yaml70
-rw-r--r--qa/suites/rados/singleton/all/watch-notify-same-primary.yaml32
l---------qa/suites/rados/singleton/msgr1
l---------qa/suites/rados/singleton/msgr-failures/.qa1
-rw-r--r--qa/suites/rados/singleton/msgr-failures/few.yaml7
-rw-r--r--qa/suites/rados/singleton/msgr-failures/many.yaml11
l---------qa/suites/rados/singleton/objectstore1
l---------qa/suites/rados/singleton/rados.yaml1
l---------qa/suites/rados/singleton/supported-random-distro$1
-rw-r--r--qa/suites/rados/standalone/%0
l---------qa/suites/rados/standalone/.qa1
l---------qa/suites/rados/standalone/supported-random-distro$1
l---------qa/suites/rados/standalone/workloads/.qa1
-rw-r--r--qa/suites/rados/standalone/workloads/crush.yaml18
-rw-r--r--qa/suites/rados/standalone/workloads/erasure-code.yaml18
-rw-r--r--qa/suites/rados/standalone/workloads/mgr.yaml18
-rw-r--r--qa/suites/rados/standalone/workloads/misc.yaml18
-rw-r--r--qa/suites/rados/standalone/workloads/mon.yaml18
-rw-r--r--qa/suites/rados/standalone/workloads/osd.yaml18
-rw-r--r--qa/suites/rados/standalone/workloads/scrub.yaml18
-rw-r--r--qa/suites/rados/thrash-erasure-code-big/%0
l---------qa/suites/rados/thrash-erasure-code-big/.qa1
l---------qa/suites/rados/thrash-erasure-code-big/ceph.yaml1
-rw-r--r--qa/suites/rados/thrash-erasure-code-big/cluster/+0
l---------qa/suites/rados/thrash-erasure-code-big/cluster/.qa1
-rw-r--r--qa/suites/rados/thrash-erasure-code-big/cluster/12-osds.yaml4
-rw-r--r--qa/suites/rados/thrash-erasure-code-big/cluster/openstack.yaml4
l---------qa/suites/rados/thrash-erasure-code-big/msgr-failures1
l---------qa/suites/rados/thrash-erasure-code-big/objectstore1
l---------qa/suites/rados/thrash-erasure-code-big/rados.yaml1
l---------qa/suites/rados/thrash-erasure-code-big/recovery-overrides1
l---------qa/suites/rados/thrash-erasure-code-big/supported-random-distro$1
l---------qa/suites/rados/thrash-erasure-code-big/thrashers/.qa1
-rw-r--r--qa/suites/rados/thrash-erasure-code-big/thrashers/careful.yaml20
-rw-r--r--qa/suites/rados/thrash-erasure-code-big/thrashers/default.yaml19
-rw-r--r--qa/suites/rados/thrash-erasure-code-big/thrashers/fastread.yaml20
-rw-r--r--qa/suites/rados/thrash-erasure-code-big/thrashers/mapgap.yaml21
-rw-r--r--qa/suites/rados/thrash-erasure-code-big/thrashers/morepggrow.yaml16
-rw-r--r--qa/suites/rados/thrash-erasure-code-big/thrashers/pggrow.yaml15
l---------qa/suites/rados/thrash-erasure-code-big/thrashosds-health.yaml1
l---------qa/suites/rados/thrash-erasure-code-big/workloads/.qa1
l---------qa/suites/rados/thrash-erasure-code-big/workloads/ec-rados-plugin=jerasure-k=4-m=2.yaml1
l---------qa/suites/rados/thrash-erasure-code-big/workloads/ec-rados-plugin=lrc-k=4-m=2-l=3.yaml1
-rw-r--r--qa/suites/rados/thrash-erasure-code-isa/%0
l---------qa/suites/rados/thrash-erasure-code-isa/.qa1
l---------qa/suites/rados/thrash-erasure-code-isa/arch/.qa1
-rw-r--r--qa/suites/rados/thrash-erasure-code-isa/arch/x86_64.yaml1
l---------qa/suites/rados/thrash-erasure-code-isa/ceph.yaml1
l---------qa/suites/rados/thrash-erasure-code-isa/clusters1
l---------qa/suites/rados/thrash-erasure-code-isa/msgr-failures1
l---------qa/suites/rados/thrash-erasure-code-isa/objectstore1
l---------qa/suites/rados/thrash-erasure-code-isa/rados.yaml1
l---------qa/suites/rados/thrash-erasure-code-isa/recovery-overrides1
l---------qa/suites/rados/thrash-erasure-code-isa/supported-random-distro$1
l---------qa/suites/rados/thrash-erasure-code-isa/thrashers1
l---------qa/suites/rados/thrash-erasure-code-isa/thrashosds-health.yaml1
l---------qa/suites/rados/thrash-erasure-code-isa/workloads/.qa1
l---------qa/suites/rados/thrash-erasure-code-isa/workloads/ec-rados-plugin=isa-k=2-m=1.yaml1
-rw-r--r--qa/suites/rados/thrash-erasure-code-overwrites/%0
l---------qa/suites/rados/thrash-erasure-code-overwrites/.qa1
l---------qa/suites/rados/thrash-erasure-code-overwrites/bluestore-bitmap.yaml1
l---------qa/suites/rados/thrash-erasure-code-overwrites/ceph.yaml1
l---------qa/suites/rados/thrash-erasure-code-overwrites/clusters1
l---------qa/suites/rados/thrash-erasure-code-overwrites/fast1
l---------qa/suites/rados/thrash-erasure-code-overwrites/msgr-failures1
l---------qa/suites/rados/thrash-erasure-code-overwrites/rados.yaml1
l---------qa/suites/rados/thrash-erasure-code-overwrites/recovery-overrides1
l---------qa/suites/rados/thrash-erasure-code-overwrites/supported-random-distro$1
l---------qa/suites/rados/thrash-erasure-code-overwrites/thrashers1
l---------qa/suites/rados/thrash-erasure-code-overwrites/thrashosds-health.yaml1
l---------qa/suites/rados/thrash-erasure-code-overwrites/workloads/.qa1
-rw-r--r--qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-pool-snaps-few-objects-overwrites.yaml23
-rw-r--r--qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-small-objects-fast-read-overwrites.yaml29
-rw-r--r--qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-small-objects-overwrites.yaml28
-rw-r--r--qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-snaps-few-objects-overwrites.yaml22
-rw-r--r--qa/suites/rados/thrash-erasure-code-shec/%0
l---------qa/suites/rados/thrash-erasure-code-shec/.qa1
l---------qa/suites/rados/thrash-erasure-code-shec/ceph.yaml1
-rw-r--r--qa/suites/rados/thrash-erasure-code-shec/clusters/+0
l---------qa/suites/rados/thrash-erasure-code-shec/clusters/.qa1
l---------qa/suites/rados/thrash-erasure-code-shec/clusters/fixed-4.yaml1
-rw-r--r--qa/suites/rados/thrash-erasure-code-shec/clusters/openstack.yaml4
l---------qa/suites/rados/thrash-erasure-code-shec/msgr-failures1
l---------qa/suites/rados/thrash-erasure-code-shec/objectstore1
l---------qa/suites/rados/thrash-erasure-code-shec/rados.yaml1
l---------qa/suites/rados/thrash-erasure-code-shec/recovery-overrides1
l---------qa/suites/rados/thrash-erasure-code-shec/supported-random-distro$1
l---------qa/suites/rados/thrash-erasure-code-shec/thrashers/.qa1
-rw-r--r--qa/suites/rados/thrash-erasure-code-shec/thrashers/careful.yaml20
-rw-r--r--qa/suites/rados/thrash-erasure-code-shec/thrashers/default.yaml19
l---------qa/suites/rados/thrash-erasure-code-shec/thrashosds-health.yaml1
l---------qa/suites/rados/thrash-erasure-code-shec/workloads/.qa1
l---------qa/suites/rados/thrash-erasure-code-shec/workloads/ec-rados-plugin=shec-k=4-m=3-c=2.yaml1
-rw-r--r--qa/suites/rados/thrash-erasure-code/%0
l---------qa/suites/rados/thrash-erasure-code/.qa1
-rw-r--r--qa/suites/rados/thrash-erasure-code/ceph.yaml3
l---------qa/suites/rados/thrash-erasure-code/clusters1
l---------qa/suites/rados/thrash-erasure-code/fast/.qa1
-rw-r--r--qa/suites/rados/thrash-erasure-code/fast/fast.yaml5
-rw-r--r--qa/suites/rados/thrash-erasure-code/fast/normal.yaml0
l---------qa/suites/rados/thrash-erasure-code/msgr-failures1
l---------qa/suites/rados/thrash-erasure-code/objectstore1
l---------qa/suites/rados/thrash-erasure-code/rados.yaml1
l---------qa/suites/rados/thrash-erasure-code/recovery-overrides1
l---------qa/suites/rados/thrash-erasure-code/supported-random-distro$1
l---------qa/suites/rados/thrash-erasure-code/thrashers/.qa1
-rw-r--r--qa/suites/rados/thrash-erasure-code/thrashers/careful.yaml19
-rw-r--r--qa/suites/rados/thrash-erasure-code/thrashers/default.yaml18
-rw-r--r--qa/suites/rados/thrash-erasure-code/thrashers/fastread.yaml20
-rw-r--r--qa/suites/rados/thrash-erasure-code/thrashers/morepggrow.yaml16
-rw-r--r--qa/suites/rados/thrash-erasure-code/thrashers/pggrow.yaml16
l---------qa/suites/rados/thrash-erasure-code/thrashosds-health.yaml1
l---------qa/suites/rados/thrash-erasure-code/workloads/.qa1
l---------qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=clay-k=4-m=2.yaml1
l---------qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=jerasure-k=2-m=1.yaml1
l---------qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=jerasure-k=3-m=1.yaml1
-rw-r--r--qa/suites/rados/thrash-erasure-code/workloads/ec-radosbench.yaml27
-rw-r--r--qa/suites/rados/thrash-erasure-code/workloads/ec-small-objects-fast-read.yaml21
-rw-r--r--qa/suites/rados/thrash-erasure-code/workloads/ec-small-objects-many-deletes.yaml14
-rw-r--r--qa/suites/rados/thrash-erasure-code/workloads/ec-small-objects.yaml20
-rw-r--r--qa/suites/rados/thrash-old-clients/%0
l---------qa/suites/rados/thrash-old-clients/.qa1
l---------qa/suites/rados/thrash-old-clients/0-size-min-size-overrides/.qa1
l---------qa/suites/rados/thrash-old-clients/0-size-min-size-overrides/2-size-2-min-size.yaml1
l---------qa/suites/rados/thrash-old-clients/0-size-min-size-overrides/3-size-2-min-size.yaml1
l---------qa/suites/rados/thrash-old-clients/1-install/.qa1
-rw-r--r--qa/suites/rados/thrash-old-clients/1-install/hammer.yaml29
-rw-r--r--qa/suites/rados/thrash-old-clients/1-install/jewel.yaml19
-rw-r--r--qa/suites/rados/thrash-old-clients/1-install/luminous.yaml15
l---------qa/suites/rados/thrash-old-clients/backoff/.qa1
-rw-r--r--qa/suites/rados/thrash-old-clients/backoff/normal.yaml0
-rw-r--r--qa/suites/rados/thrash-old-clients/backoff/peering.yaml5
-rw-r--r--qa/suites/rados/thrash-old-clients/backoff/peering_and_degraded.yaml6
-rw-r--r--qa/suites/rados/thrash-old-clients/ceph.yaml7
-rw-r--r--qa/suites/rados/thrash-old-clients/clusters/+0
l---------qa/suites/rados/thrash-old-clients/clusters/.qa1
-rw-r--r--qa/suites/rados/thrash-old-clients/clusters/openstack.yaml4
-rw-r--r--qa/suites/rados/thrash-old-clients/clusters/three-plus-one.yaml14
l---------qa/suites/rados/thrash-old-clients/d-balancer/.qa1
-rw-r--r--qa/suites/rados/thrash-old-clients/d-balancer/crush-compat.yaml6
-rw-r--r--qa/suites/rados/thrash-old-clients/d-balancer/off.yaml0
l---------qa/suites/rados/thrash-old-clients/distro$/.qa1
l---------qa/suites/rados/thrash-old-clients/distro$/centos_latest.yaml1
l---------qa/suites/rados/thrash-old-clients/distro$/ubuntu_16.04.yaml1
l---------qa/suites/rados/thrash-old-clients/msgr-failures/.qa1
-rw-r--r--qa/suites/rados/thrash-old-clients/msgr-failures/fastclose.yaml8
-rw-r--r--qa/suites/rados/thrash-old-clients/msgr-failures/few.yaml9
-rw-r--r--qa/suites/rados/thrash-old-clients/msgr-failures/osd-delay.yaml11
l---------qa/suites/rados/thrash-old-clients/msgr/.qa1
l---------qa/suites/rados/thrash-old-clients/msgr/async-v1only.yaml1
l---------qa/suites/rados/thrash-old-clients/msgr/async.yaml1
l---------qa/suites/rados/thrash-old-clients/msgr/random.yaml1
l---------qa/suites/rados/thrash-old-clients/msgr/simple.yaml1
l---------qa/suites/rados/thrash-old-clients/rados.yaml1
l---------qa/suites/rados/thrash-old-clients/thrashers/.qa1
-rw-r--r--qa/suites/rados/thrash-old-clients/thrashers/careful.yaml25
-rw-r--r--qa/suites/rados/thrash-old-clients/thrashers/default.yaml24
-rw-r--r--qa/suites/rados/thrash-old-clients/thrashers/mapgap.yaml26
-rw-r--r--qa/suites/rados/thrash-old-clients/thrashers/morepggrow.yaml22
-rw-r--r--qa/suites/rados/thrash-old-clients/thrashers/none.yaml0
-rw-r--r--qa/suites/rados/thrash-old-clients/thrashers/pggrow.yaml24
l---------qa/suites/rados/thrash-old-clients/thrashosds-health.yaml1
l---------qa/suites/rados/thrash-old-clients/workloads/.qa1
-rw-r--r--qa/suites/rados/thrash-old-clients/workloads/cache-snaps.yaml34
-rw-r--r--qa/suites/rados/thrash-old-clients/workloads/radosbench.yaml41
-rw-r--r--qa/suites/rados/thrash-old-clients/workloads/rbd_cls.yaml7
-rw-r--r--qa/suites/rados/thrash-old-clients/workloads/snaps-few-objects.yaml13
-rw-r--r--qa/suites/rados/thrash-old-clients/workloads/test_rbd_api.yaml8
-rw-r--r--qa/suites/rados/thrash/%0
l---------qa/suites/rados/thrash/.qa1
l---------qa/suites/rados/thrash/0-size-min-size-overrides/.qa1
l---------qa/suites/rados/thrash/0-size-min-size-overrides/2-size-2-min-size.yaml1
l---------qa/suites/rados/thrash/0-size-min-size-overrides/3-size-2-min-size.yaml1
l---------qa/suites/rados/thrash/1-pg-log-overrides/.qa1
-rw-r--r--qa/suites/rados/thrash/1-pg-log-overrides/normal_pg_log.yaml0
l---------qa/suites/rados/thrash/1-pg-log-overrides/short_pg_log.yaml1
-rw-r--r--qa/suites/rados/thrash/2-recovery-overrides/$0
l---------qa/suites/rados/thrash/2-recovery-overrides/.qa1
-rw-r--r--qa/suites/rados/thrash/2-recovery-overrides/default.yaml0
l---------qa/suites/rados/thrash/2-recovery-overrides/more-active-recovery.yaml1
l---------qa/suites/rados/thrash/backoff/.qa1
-rw-r--r--qa/suites/rados/thrash/backoff/normal.yaml0
-rw-r--r--qa/suites/rados/thrash/backoff/peering.yaml5
-rw-r--r--qa/suites/rados/thrash/backoff/peering_and_degraded.yaml6
-rw-r--r--qa/suites/rados/thrash/ceph.yaml3
-rw-r--r--qa/suites/rados/thrash/clusters/+0
l---------qa/suites/rados/thrash/clusters/.qa1
l---------qa/suites/rados/thrash/clusters/fixed-2.yaml1
-rw-r--r--qa/suites/rados/thrash/clusters/openstack.yaml4
-rw-r--r--qa/suites/rados/thrash/crc-failures/bad_map_crc_failure.yaml7
-rw-r--r--qa/suites/rados/thrash/crc-failures/default.yaml0
l---------qa/suites/rados/thrash/d-balancer/.qa1
-rw-r--r--qa/suites/rados/thrash/d-balancer/crush-compat.yaml6
-rw-r--r--qa/suites/rados/thrash/d-balancer/off.yaml0
-rw-r--r--qa/suites/rados/thrash/d-balancer/upmap.yaml7
l---------qa/suites/rados/thrash/msgr1
l---------qa/suites/rados/thrash/msgr-failures/.qa1
-rw-r--r--qa/suites/rados/thrash/msgr-failures/fastclose.yaml8
-rw-r--r--qa/suites/rados/thrash/msgr-failures/few.yaml9
-rw-r--r--qa/suites/rados/thrash/msgr-failures/osd-delay.yaml11
l---------qa/suites/rados/thrash/objectstore1
l---------qa/suites/rados/thrash/rados.yaml1
l---------qa/suites/rados/thrash/supported-random-distro$1
l---------qa/suites/rados/thrash/thrashers/.qa1
-rw-r--r--qa/suites/rados/thrash/thrashers/careful.yaml26
-rw-r--r--qa/suites/rados/thrash/thrashers/default.yaml26
-rw-r--r--qa/suites/rados/thrash/thrashers/mapgap.yaml27
-rw-r--r--qa/suites/rados/thrash/thrashers/morepggrow.yaml22
-rw-r--r--qa/suites/rados/thrash/thrashers/none.yaml0
-rw-r--r--qa/suites/rados/thrash/thrashers/pggrow.yaml24
l---------qa/suites/rados/thrash/thrashosds-health.yaml1
l---------qa/suites/rados/thrash/workloads/.qa1
-rw-r--r--qa/suites/rados/thrash/workloads/admin_socket_objecter_requests.yaml13
-rw-r--r--qa/suites/rados/thrash/workloads/cache-agent-big.yaml36
-rw-r--r--qa/suites/rados/thrash/workloads/cache-agent-small.yaml34
-rw-r--r--qa/suites/rados/thrash/workloads/cache-pool-snaps-readproxy.yaml39
-rw-r--r--qa/suites/rados/thrash/workloads/cache-pool-snaps.yaml44
-rw-r--r--qa/suites/rados/thrash/workloads/cache-snaps.yaml39
-rw-r--r--qa/suites/rados/thrash/workloads/cache.yaml36
-rw-r--r--qa/suites/rados/thrash/workloads/pool-snaps-few-objects.yaml18
-rw-r--r--qa/suites/rados/thrash/workloads/rados_api_tests.yaml20
-rw-r--r--qa/suites/rados/thrash/workloads/radosbench-high-concurrency.yaml49
-rw-r--r--qa/suites/rados/thrash/workloads/radosbench.yaml33
-rw-r--r--qa/suites/rados/thrash/workloads/redirect.yaml15
-rw-r--r--qa/suites/rados/thrash/workloads/redirect_promote_tests.yaml14
-rw-r--r--qa/suites/rados/thrash/workloads/redirect_set_object.yaml13
-rw-r--r--qa/suites/rados/thrash/workloads/set-chunks-read.yaml13
-rw-r--r--qa/suites/rados/thrash/workloads/small-objects.yaml24
-rw-r--r--qa/suites/rados/thrash/workloads/snaps-few-objects.yaml13
-rw-r--r--qa/suites/rados/thrash/workloads/write_fadvise_dontneed.yaml8
l---------qa/suites/rados/upgrade/.qa1
l---------qa/suites/rados/upgrade/mimic-x-singleton1
-rw-r--r--qa/suites/rados/verify/%0
l---------qa/suites/rados/verify/.qa1
-rw-r--r--qa/suites/rados/verify/ceph.yaml13
-rw-r--r--qa/suites/rados/verify/clusters/+0
l---------qa/suites/rados/verify/clusters/.qa1
l---------qa/suites/rados/verify/clusters/fixed-2.yaml1
-rw-r--r--qa/suites/rados/verify/clusters/openstack.yaml4
l---------qa/suites/rados/verify/d-thrash/.qa1
-rw-r--r--qa/suites/rados/verify/d-thrash/default/+0
l---------qa/suites/rados/verify/d-thrash/default/.qa1
-rw-r--r--qa/suites/rados/verify/d-thrash/default/default.yaml11
l---------qa/suites/rados/verify/d-thrash/default/thrashosds-health.yaml1
-rw-r--r--qa/suites/rados/verify/d-thrash/none.yaml0
l---------qa/suites/rados/verify/msgr1
l---------qa/suites/rados/verify/msgr-failures/.qa1
-rw-r--r--qa/suites/rados/verify/msgr-failures/few.yaml7
l---------qa/suites/rados/verify/objectstore1
l---------qa/suites/rados/verify/rados.yaml1
l---------qa/suites/rados/verify/tasks/.qa1
-rw-r--r--qa/suites/rados/verify/tasks/mon_recovery.yaml10
-rw-r--r--qa/suites/rados/verify/tasks/rados_api_tests.yaml30
-rw-r--r--qa/suites/rados/verify/tasks/rados_cls_all.yaml13
l---------qa/suites/rados/verify/validater/.qa1
-rw-r--r--qa/suites/rados/verify/validater/lockdep.yaml5
-rw-r--r--qa/suites/rados/verify/validater/valgrind.yaml32
l---------qa/suites/rbd/.qa1
-rw-r--r--qa/suites/rbd/basic/%0
l---------qa/suites/rbd/basic/.qa1
l---------qa/suites/rbd/basic/base/.qa1
-rw-r--r--qa/suites/rbd/basic/base/install.yaml3
l---------qa/suites/rbd/basic/cachepool/.qa1
-rw-r--r--qa/suites/rbd/basic/cachepool/none.yaml0
-rw-r--r--qa/suites/rbd/basic/cachepool/small.yaml17
-rw-r--r--qa/suites/rbd/basic/clusters/+0
l---------qa/suites/rbd/basic/clusters/.qa1
l---------qa/suites/rbd/basic/clusters/fixed-1.yaml1
-rw-r--r--qa/suites/rbd/basic/clusters/openstack.yaml4
l---------qa/suites/rbd/basic/msgr-failures/.qa1
-rw-r--r--qa/suites/rbd/basic/msgr-failures/few.yaml7
l---------qa/suites/rbd/basic/objectstore1
l---------qa/suites/rbd/basic/supported-random-distro$1
l---------qa/suites/rbd/basic/tasks/.qa1
-rw-r--r--qa/suites/rbd/basic/tasks/rbd_api_tests_old_format.yaml11
-rw-r--r--qa/suites/rbd/basic/tasks/rbd_cls_tests.yaml7
-rw-r--r--qa/suites/rbd/basic/tasks/rbd_lock_and_fence.yaml5
-rw-r--r--qa/suites/rbd/basic/tasks/rbd_python_api_tests_old_format.yaml10
-rw-r--r--qa/suites/rbd/cli/%0
l---------qa/suites/rbd/cli/.qa1
l---------qa/suites/rbd/cli/base/.qa1
-rw-r--r--qa/suites/rbd/cli/base/install.yaml3
l---------qa/suites/rbd/cli/clusters1
l---------qa/suites/rbd/cli/features/.qa1
-rw-r--r--qa/suites/rbd/cli/features/defaults.yaml5
-rw-r--r--qa/suites/rbd/cli/features/journaling.yaml5
-rw-r--r--qa/suites/rbd/cli/features/layering.yaml5
l---------qa/suites/rbd/cli/msgr-failures/.qa1
-rw-r--r--qa/suites/rbd/cli/msgr-failures/few.yaml7
l---------qa/suites/rbd/cli/objectstore1
l---------qa/suites/rbd/cli/pool/.qa1
-rw-r--r--qa/suites/rbd/cli/pool/ec-data-pool.yaml27
-rw-r--r--qa/suites/rbd/cli/pool/none.yaml0
-rw-r--r--qa/suites/rbd/cli/pool/replicated-data-pool.yaml11
-rw-r--r--qa/suites/rbd/cli/pool/small-cache-pool.yaml17
l---------qa/suites/rbd/cli/supported-random-distro$1
l---------qa/suites/rbd/cli/workloads/.qa1
-rw-r--r--qa/suites/rbd/cli/workloads/rbd_cli_generic.yaml5
-rw-r--r--qa/suites/rbd/cli/workloads/rbd_cli_groups.yaml5
-rw-r--r--qa/suites/rbd/cli/workloads/rbd_cli_import_export.yaml5
-rw-r--r--qa/suites/rbd/cli_v1/%0
l---------qa/suites/rbd/cli_v1/.qa1
l---------qa/suites/rbd/cli_v1/base/.qa1
-rw-r--r--qa/suites/rbd/cli_v1/base/install.yaml3
l---------qa/suites/rbd/cli_v1/clusters1
l---------qa/suites/rbd/cli_v1/features/.qa1
-rw-r--r--qa/suites/rbd/cli_v1/features/format-1.yaml5
l---------qa/suites/rbd/cli_v1/msgr-failures/.qa1
-rw-r--r--qa/suites/rbd/cli_v1/msgr-failures/few.yaml7
l---------qa/suites/rbd/cli_v1/objectstore1
l---------qa/suites/rbd/cli_v1/pool/.qa1
-rw-r--r--qa/suites/rbd/cli_v1/pool/none.yaml0
-rw-r--r--qa/suites/rbd/cli_v1/pool/small-cache-pool.yaml17
l---------qa/suites/rbd/cli_v1/supported-random-distro$1
l---------qa/suites/rbd/cli_v1/workloads/.qa1
-rw-r--r--qa/suites/rbd/cli_v1/workloads/rbd_cli_generic.yaml5
-rw-r--r--qa/suites/rbd/cli_v1/workloads/rbd_cli_import_export.yaml5
-rw-r--r--qa/suites/rbd/librbd/%0
l---------qa/suites/rbd/librbd/.qa1
l---------qa/suites/rbd/librbd/cache/.qa1
-rw-r--r--qa/suites/rbd/librbd/cache/none.yaml6
-rw-r--r--qa/suites/rbd/librbd/cache/writeback.yaml6
-rw-r--r--qa/suites/rbd/librbd/cache/writethrough.yaml7
-rw-r--r--qa/suites/rbd/librbd/clusters/+0
l---------qa/suites/rbd/librbd/clusters/.qa1
l---------qa/suites/rbd/librbd/clusters/fixed-3.yaml1
-rw-r--r--qa/suites/rbd/librbd/clusters/openstack.yaml4
l---------qa/suites/rbd/librbd/config/.qa1
-rw-r--r--qa/suites/rbd/librbd/config/copy-on-read.yaml5
-rw-r--r--qa/suites/rbd/librbd/config/none.yaml0
-rw-r--r--qa/suites/rbd/librbd/config/permit-partial-discard.yaml5
l---------qa/suites/rbd/librbd/msgr-failures/.qa1
-rw-r--r--qa/suites/rbd/librbd/msgr-failures/few.yaml7
l---------qa/suites/rbd/librbd/objectstore1
l---------qa/suites/rbd/librbd/pool/.qa1
-rw-r--r--qa/suites/rbd/librbd/pool/ec-data-pool.yaml24
-rw-r--r--qa/suites/rbd/librbd/pool/none.yaml0
-rw-r--r--qa/suites/rbd/librbd/pool/replicated-data-pool.yaml11
-rw-r--r--qa/suites/rbd/librbd/pool/small-cache-pool.yaml17
l---------qa/suites/rbd/librbd/supported-random-distro$1
l---------qa/suites/rbd/librbd/workloads/.qa1
-rw-r--r--qa/suites/rbd/librbd/workloads/c_api_tests.yaml13
-rw-r--r--qa/suites/rbd/librbd/workloads/c_api_tests_with_defaults.yaml13
-rw-r--r--qa/suites/rbd/librbd/workloads/c_api_tests_with_journaling.yaml13
-rw-r--r--qa/suites/rbd/librbd/workloads/fsx.yaml4
-rw-r--r--qa/suites/rbd/librbd/workloads/python_api_tests.yaml7
-rw-r--r--qa/suites/rbd/librbd/workloads/python_api_tests_with_defaults.yaml7
-rw-r--r--qa/suites/rbd/librbd/workloads/python_api_tests_with_journaling.yaml7
-rw-r--r--qa/suites/rbd/librbd/workloads/rbd_fio.yaml10
-rw-r--r--qa/suites/rbd/maintenance/%0
l---------qa/suites/rbd/maintenance/.qa1
l---------qa/suites/rbd/maintenance/base/.qa1
-rw-r--r--qa/suites/rbd/maintenance/base/install.yaml3
-rw-r--r--qa/suites/rbd/maintenance/clusters/+0
l---------qa/suites/rbd/maintenance/clusters/.qa1
l---------qa/suites/rbd/maintenance/clusters/fixed-3.yaml1
l---------qa/suites/rbd/maintenance/clusters/openstack.yaml1
l---------qa/suites/rbd/maintenance/objectstore1
l---------qa/suites/rbd/maintenance/qemu/.qa1
-rw-r--r--qa/suites/rbd/maintenance/qemu/xfstests.yaml14
l---------qa/suites/rbd/maintenance/supported-random-distro$1
l---------qa/suites/rbd/maintenance/workloads/.qa1
-rw-r--r--qa/suites/rbd/maintenance/workloads/dynamic_features.yaml8
-rw-r--r--qa/suites/rbd/maintenance/workloads/dynamic_features_no_cache.yaml13
-rw-r--r--qa/suites/rbd/maintenance/workloads/rebuild_object_map.yaml8
-rw-r--r--qa/suites/rbd/mirror-thrash/%0
l---------qa/suites/rbd/mirror-thrash/.qa1
l---------qa/suites/rbd/mirror-thrash/base/.qa1
-rw-r--r--qa/suites/rbd/mirror-thrash/base/install.yaml9
-rw-r--r--qa/suites/rbd/mirror-thrash/cluster/+0
l---------qa/suites/rbd/mirror-thrash/cluster/.qa1
-rw-r--r--qa/suites/rbd/mirror-thrash/cluster/2-node.yaml31
-rw-r--r--qa/suites/rbd/mirror-thrash/cluster/openstack.yaml4
l---------qa/suites/rbd/mirror-thrash/msgr-failures1
l---------qa/suites/rbd/mirror-thrash/objectstore1
l---------qa/suites/rbd/mirror-thrash/policy/.qa1
-rw-r--r--qa/suites/rbd/mirror-thrash/policy/none.yaml5
-rw-r--r--qa/suites/rbd/mirror-thrash/policy/simple.yaml5
l---------qa/suites/rbd/mirror-thrash/rbd-mirror/.qa1
-rw-r--r--qa/suites/rbd/mirror-thrash/rbd-mirror/four-per-cluster.yaml31
l---------qa/suites/rbd/mirror-thrash/supported-random-distro$1
l---------qa/suites/rbd/mirror-thrash/users/.qa1
-rw-r--r--qa/suites/rbd/mirror-thrash/users/mirror.yaml23
l---------qa/suites/rbd/mirror-thrash/workloads/.qa1
-rw-r--r--qa/suites/rbd/mirror-thrash/workloads/rbd-mirror-fsx-workunit.yaml33
-rw-r--r--qa/suites/rbd/mirror-thrash/workloads/rbd-mirror-stress-workunit.yaml13
-rw-r--r--qa/suites/rbd/mirror-thrash/workloads/rbd-mirror-workunit.yaml12
-rw-r--r--qa/suites/rbd/mirror/%0
l---------qa/suites/rbd/mirror/.qa1
l---------qa/suites/rbd/mirror/base1
l---------qa/suites/rbd/mirror/cluster1
l---------qa/suites/rbd/mirror/msgr-failures1
l---------qa/suites/rbd/mirror/objectstore1
l---------qa/suites/rbd/mirror/supported-random-distro$1
l---------qa/suites/rbd/mirror/users1
l---------qa/suites/rbd/mirror/workloads/.qa1
-rw-r--r--qa/suites/rbd/mirror/workloads/rbd-mirror-bootstrap-workunit.yaml11
-rw-r--r--qa/suites/rbd/mirror/workloads/rbd-mirror-ha-workunit.yaml26
-rw-r--r--qa/suites/rbd/mirror/workloads/rbd-mirror-workunit-config-key.yaml12
-rw-r--r--qa/suites/rbd/mirror/workloads/rbd-mirror-workunit-policy-none.yaml16
-rw-r--r--qa/suites/rbd/mirror/workloads/rbd-mirror-workunit-policy-simple.yaml16
-rw-r--r--qa/suites/rbd/nbd/%0
l---------qa/suites/rbd/nbd/.qa1
l---------qa/suites/rbd/nbd/base1
-rw-r--r--qa/suites/rbd/nbd/cluster/+0
l---------qa/suites/rbd/nbd/cluster/.qa1
-rw-r--r--qa/suites/rbd/nbd/cluster/fixed-3.yaml4
l---------qa/suites/rbd/nbd/cluster/openstack.yaml1
l---------qa/suites/rbd/nbd/msgr-failures1
l---------qa/suites/rbd/nbd/objectstore1
l---------qa/suites/rbd/nbd/thrashers1
l---------qa/suites/rbd/nbd/thrashosds-health.yaml1
l---------qa/suites/rbd/nbd/workloads/.qa1
-rw-r--r--qa/suites/rbd/nbd/workloads/rbd_fsx_nbd.yaml15
-rw-r--r--qa/suites/rbd/nbd/workloads/rbd_nbd.yaml10
-rw-r--r--qa/suites/rbd/qemu/%0
l---------qa/suites/rbd/qemu/.qa1
l---------qa/suites/rbd/qemu/cache/.qa1
-rw-r--r--qa/suites/rbd/qemu/cache/none.yaml6
-rw-r--r--qa/suites/rbd/qemu/cache/writeback.yaml6
-rw-r--r--qa/suites/rbd/qemu/cache/writethrough.yaml7
-rw-r--r--qa/suites/rbd/qemu/clusters/+0
l---------qa/suites/rbd/qemu/clusters/.qa1
l---------qa/suites/rbd/qemu/clusters/fixed-3.yaml1
-rw-r--r--qa/suites/rbd/qemu/clusters/openstack.yaml8
l---------qa/suites/rbd/qemu/features/.qa1
-rw-r--r--qa/suites/rbd/qemu/features/defaults.yaml5
-rw-r--r--qa/suites/rbd/qemu/features/journaling.yaml5
l---------qa/suites/rbd/qemu/msgr-failures/.qa1
-rw-r--r--qa/suites/rbd/qemu/msgr-failures/few.yaml8
l---------qa/suites/rbd/qemu/objectstore1
l---------qa/suites/rbd/qemu/pool/.qa1
-rw-r--r--qa/suites/rbd/qemu/pool/ec-cache-pool.yaml21
-rw-r--r--qa/suites/rbd/qemu/pool/ec-data-pool.yaml24
-rw-r--r--qa/suites/rbd/qemu/pool/none.yaml0
-rw-r--r--qa/suites/rbd/qemu/pool/replicated-data-pool.yaml11
-rw-r--r--qa/suites/rbd/qemu/pool/small-cache-pool.yaml17
l---------qa/suites/rbd/qemu/supported-random-distro$1
l---------qa/suites/rbd/qemu/workloads/.qa1
-rw-r--r--qa/suites/rbd/qemu/workloads/qemu_bonnie.yaml6
-rw-r--r--qa/suites/rbd/qemu/workloads/qemu_fsstress.yaml6
-rw-r--r--qa/suites/rbd/qemu/workloads/qemu_iozone.yaml.disabled6
-rw-r--r--qa/suites/rbd/qemu/workloads/qemu_xfstests.yaml8
-rw-r--r--qa/suites/rbd/singleton-bluestore/%0
l---------qa/suites/rbd/singleton-bluestore/.qa1
l---------qa/suites/rbd/singleton-bluestore/all/.qa1
-rw-r--r--qa/suites/rbd/singleton-bluestore/all/issue-20295.yaml14
l---------qa/suites/rbd/singleton-bluestore/objectstore/.qa1
l---------qa/suites/rbd/singleton-bluestore/objectstore/bluestore-bitmap.yaml1
l---------qa/suites/rbd/singleton-bluestore/objectstore/bluestore-comp-snappy.yaml1
-rw-r--r--qa/suites/rbd/singleton-bluestore/openstack.yaml4
l---------qa/suites/rbd/singleton-bluestore/supported-random-distro$1
-rw-r--r--qa/suites/rbd/singleton/%0
l---------qa/suites/rbd/singleton/.qa1
l---------qa/suites/rbd/singleton/all/.qa1
-rw-r--r--qa/suites/rbd/singleton/all/admin_socket.yaml9
-rw-r--r--qa/suites/rbd/singleton/all/formatted-output.yaml10
-rw-r--r--qa/suites/rbd/singleton/all/merge_diff.yaml9
-rw-r--r--qa/suites/rbd/singleton/all/permissions.yaml9
-rw-r--r--qa/suites/rbd/singleton/all/qemu-iotests-no-cache.yaml13
-rw-r--r--qa/suites/rbd/singleton/all/qemu-iotests-writeback.yaml13
-rw-r--r--qa/suites/rbd/singleton/all/qemu-iotests-writethrough.yaml14
-rw-r--r--qa/suites/rbd/singleton/all/rbd-vs-unmanaged-snaps.yaml14
-rw-r--r--qa/suites/rbd/singleton/all/rbd_mirror.yaml13
-rw-r--r--qa/suites/rbd/singleton/all/rbd_tasks.yaml13
-rw-r--r--qa/suites/rbd/singleton/all/rbdmap_RBDMAPFILE.yaml7
-rw-r--r--qa/suites/rbd/singleton/all/read-flags-no-cache.yaml12
-rw-r--r--qa/suites/rbd/singleton/all/read-flags-writeback.yaml12
-rw-r--r--qa/suites/rbd/singleton/all/read-flags-writethrough.yaml13
-rw-r--r--qa/suites/rbd/singleton/all/snap-diff.yaml10
-rw-r--r--qa/suites/rbd/singleton/all/verify_pool.yaml9
l---------qa/suites/rbd/singleton/objectstore1
-rw-r--r--qa/suites/rbd/singleton/openstack.yaml4
l---------qa/suites/rbd/singleton/supported-random-distro$1
-rw-r--r--qa/suites/rbd/thrash/%0
l---------qa/suites/rbd/thrash/.qa1
l---------qa/suites/rbd/thrash/base/.qa1
-rw-r--r--qa/suites/rbd/thrash/base/install.yaml3
-rw-r--r--qa/suites/rbd/thrash/clusters/+0
l---------qa/suites/rbd/thrash/clusters/.qa1
l---------qa/suites/rbd/thrash/clusters/fixed-2.yaml1
-rw-r--r--qa/suites/rbd/thrash/clusters/openstack.yaml8
l---------qa/suites/rbd/thrash/msgr-failures/.qa1
-rw-r--r--qa/suites/rbd/thrash/msgr-failures/few.yaml7
l---------qa/suites/rbd/thrash/objectstore1
l---------qa/suites/rbd/thrash/supported-random-distro$1
l---------qa/suites/rbd/thrash/thrashers/.qa1
-rw-r--r--qa/suites/rbd/thrash/thrashers/cache.yaml21
-rw-r--r--qa/suites/rbd/thrash/thrashers/default.yaml8
l---------qa/suites/rbd/thrash/thrashosds-health.yaml1
l---------qa/suites/rbd/thrash/workloads/.qa1
-rw-r--r--qa/suites/rbd/thrash/workloads/journal.yaml5
-rw-r--r--qa/suites/rbd/thrash/workloads/rbd_api_tests.yaml13
-rw-r--r--qa/suites/rbd/thrash/workloads/rbd_api_tests_copy_on_read.yaml16
-rw-r--r--qa/suites/rbd/thrash/workloads/rbd_api_tests_journaling.yaml13
-rw-r--r--qa/suites/rbd/thrash/workloads/rbd_api_tests_no_locking.yaml13
-rw-r--r--qa/suites/rbd/thrash/workloads/rbd_fsx_cache_writeback.yaml9
-rw-r--r--qa/suites/rbd/thrash/workloads/rbd_fsx_cache_writethrough.yaml10
-rw-r--r--qa/suites/rbd/thrash/workloads/rbd_fsx_copy_on_read.yaml10
-rw-r--r--qa/suites/rbd/thrash/workloads/rbd_fsx_deep_copy.yaml5
-rw-r--r--qa/suites/rbd/thrash/workloads/rbd_fsx_journal.yaml5
-rw-r--r--qa/suites/rbd/thrash/workloads/rbd_fsx_nocache.yaml9
-rw-r--r--qa/suites/rbd/thrash/workloads/rbd_fsx_rate_limit.yaml11
-rw-r--r--qa/suites/rbd/valgrind/%0
l---------qa/suites/rbd/valgrind/.qa1
l---------qa/suites/rbd/valgrind/base/.qa1
-rw-r--r--qa/suites/rbd/valgrind/base/install.yaml3
l---------qa/suites/rbd/valgrind/centos_latest.yaml1
l---------qa/suites/rbd/valgrind/clusters1
l---------qa/suites/rbd/valgrind/objectstore1
l---------qa/suites/rbd/valgrind/validator/.qa1
-rw-r--r--qa/suites/rbd/valgrind/validator/memcheck.yaml12
l---------qa/suites/rbd/valgrind/workloads/.qa1
-rw-r--r--qa/suites/rbd/valgrind/workloads/c_api_tests.yaml13
-rw-r--r--qa/suites/rbd/valgrind/workloads/c_api_tests_with_defaults.yaml13
-rw-r--r--qa/suites/rbd/valgrind/workloads/c_api_tests_with_journaling.yaml13
-rw-r--r--qa/suites/rbd/valgrind/workloads/fsx.yaml4
-rw-r--r--qa/suites/rbd/valgrind/workloads/python_api_tests.yaml7
-rw-r--r--qa/suites/rbd/valgrind/workloads/python_api_tests_with_defaults.yaml7
-rw-r--r--qa/suites/rbd/valgrind/workloads/python_api_tests_with_journaling.yaml7
-rw-r--r--qa/suites/rbd/valgrind/workloads/rbd_mirror.yaml11
l---------qa/suites/rgw/.qa1
-rw-r--r--qa/suites/rgw/hadoop-s3a/%0
l---------qa/suites/rgw/hadoop-s3a/.qa1
l---------qa/suites/rgw/hadoop-s3a/clusters/.qa1
l---------qa/suites/rgw/hadoop-s3a/clusters/fixed-2.yaml1
l---------qa/suites/rgw/hadoop-s3a/hadoop/.qa1
-rw-r--r--qa/suites/rgw/hadoop-s3a/hadoop/default.yaml1
-rw-r--r--qa/suites/rgw/hadoop-s3a/hadoop/v32.yaml3
-rw-r--r--qa/suites/rgw/hadoop-s3a/s3a-hadoop.yaml11
l---------qa/suites/rgw/hadoop-s3a/supported-random-distro$1
-rw-r--r--qa/suites/rgw/multifs/%0
l---------qa/suites/rgw/multifs/.qa1
l---------qa/suites/rgw/multifs/clusters/.qa1
l---------qa/suites/rgw/multifs/clusters/fixed-2.yaml1
l---------qa/suites/rgw/multifs/frontend/.qa1
l---------qa/suites/rgw/multifs/frontend/civetweb.yaml1
l---------qa/suites/rgw/multifs/objectstore1
-rw-r--r--qa/suites/rgw/multifs/overrides.yaml10
l---------qa/suites/rgw/multifs/rgw_pool_type1
l---------qa/suites/rgw/multifs/tasks/.qa1
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_bucket_quota.yaml10
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_multipart_upload.yaml10
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_ragweed.yaml19
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_readwrite.yaml17
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_roundtrip.yaml17
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_s3tests.yaml13
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_swift.yaml8
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_user_quota.yaml10
-rw-r--r--qa/suites/rgw/multisite/%0
l---------qa/suites/rgw/multisite/.qa1
-rw-r--r--qa/suites/rgw/multisite/clusters.yaml3
l---------qa/suites/rgw/multisite/frontend1
-rw-r--r--qa/suites/rgw/multisite/omap_limits.yaml10
-rw-r--r--qa/suites/rgw/multisite/overrides.yaml15
l---------qa/suites/rgw/multisite/realms/.qa1
-rw-r--r--qa/suites/rgw/multisite/realms/three-zone-plus-pubsub.yaml23
-rw-r--r--qa/suites/rgw/multisite/realms/three-zone.yaml20
-rw-r--r--qa/suites/rgw/multisite/realms/two-zonegroup.yaml27
l---------qa/suites/rgw/multisite/tasks/.qa1
-rw-r--r--qa/suites/rgw/multisite/tasks/test_multi.yaml26
-rw-r--r--qa/suites/rgw/multisite/valgrind.yaml19
-rw-r--r--qa/suites/rgw/singleton/%0
l---------qa/suites/rgw/singleton/.qa1
l---------qa/suites/rgw/singleton/all/.qa1
-rw-r--r--qa/suites/rgw/singleton/all/radosgw-admin.yaml21
l---------qa/suites/rgw/singleton/frontend/.qa1
l---------qa/suites/rgw/singleton/frontend/civetweb.yaml1
l---------qa/suites/rgw/singleton/objectstore1
-rw-r--r--qa/suites/rgw/singleton/overrides.yaml6
l---------qa/suites/rgw/singleton/rgw_pool_type1
l---------qa/suites/rgw/singleton/supported-random-distro$1
-rw-r--r--qa/suites/rgw/tempest/%0
l---------qa/suites/rgw/tempest/.qa1
l---------qa/suites/rgw/tempest/clusters/.qa1
l---------qa/suites/rgw/tempest/clusters/fixed-1.yaml1
l---------qa/suites/rgw/tempest/frontend1
l---------qa/suites/rgw/tempest/tasks/.qa1
-rw-r--r--qa/suites/rgw/tempest/tasks/rgw_tempest.yaml78
l---------qa/suites/rgw/tempest/ubuntu_latest.yaml1
-rw-r--r--qa/suites/rgw/thrash/%0
l---------qa/suites/rgw/thrash/.qa1
-rw-r--r--qa/suites/rgw/thrash/civetweb.yaml3
l---------qa/suites/rgw/thrash/clusters/.qa1
l---------qa/suites/rgw/thrash/clusters/fixed-2.yaml1
-rw-r--r--qa/suites/rgw/thrash/install.yaml5
l---------qa/suites/rgw/thrash/objectstore1
l---------qa/suites/rgw/thrash/thrasher/.qa1
-rw-r--r--qa/suites/rgw/thrash/thrasher/default.yaml9
l---------qa/suites/rgw/thrash/thrashosds-health.yaml1
l---------qa/suites/rgw/thrash/workload/.qa1
-rw-r--r--qa/suites/rgw/thrash/workload/rgw_bucket_quota.yaml7
-rw-r--r--qa/suites/rgw/thrash/workload/rgw_multipart_upload.yaml7
-rw-r--r--qa/suites/rgw/thrash/workload/rgw_readwrite.yaml14
-rw-r--r--qa/suites/rgw/thrash/workload/rgw_roundtrip.yaml14
-rw-r--r--qa/suites/rgw/thrash/workload/rgw_s3tests.yaml12
-rw-r--r--qa/suites/rgw/thrash/workload/rgw_swift.yaml5
-rw-r--r--qa/suites/rgw/thrash/workload/rgw_user_quota.yaml7
-rw-r--r--qa/suites/rgw/tools/+0
l---------qa/suites/rgw/tools/.qa1
l---------qa/suites/rgw/tools/centos_latest.yaml1
-rw-r--r--qa/suites/rgw/tools/cluster.yaml9
-rw-r--r--qa/suites/rgw/tools/tasks.yaml19
-rw-r--r--qa/suites/rgw/verify/%0
l---------qa/suites/rgw/verify/.qa1
l---------qa/suites/rgw/verify/clusters/.qa1
l---------qa/suites/rgw/verify/clusters/fixed-2.yaml1
l---------qa/suites/rgw/verify/frontend1
l---------qa/suites/rgw/verify/msgr-failures/.qa1
-rw-r--r--qa/suites/rgw/verify/msgr-failures/few.yaml7
l---------qa/suites/rgw/verify/objectstore1
-rw-r--r--qa/suites/rgw/verify/overrides.yaml10
l---------qa/suites/rgw/verify/proto/.qa1
-rw-r--r--qa/suites/rgw/verify/proto/http.yaml0
-rw-r--r--qa/suites/rgw/verify/proto/https.yaml20
l---------qa/suites/rgw/verify/rgw_pool_type1
-rw-r--r--qa/suites/rgw/verify/striping$/stripe-equals-chunk.yaml7
-rw-r--r--qa/suites/rgw/verify/striping$/stripe-greater-than-chunk.yaml7
-rw-r--r--qa/suites/rgw/verify/tasks/+0
l---------qa/suites/rgw/verify/tasks/.qa1
-rw-r--r--qa/suites/rgw/verify/tasks/0-install.yaml21
-rw-r--r--qa/suites/rgw/verify/tasks/cls.yaml8
-rw-r--r--qa/suites/rgw/verify/tasks/ragweed.yaml6
-rw-r--r--qa/suites/rgw/verify/tasks/s3tests.yaml5
-rw-r--r--qa/suites/rgw/verify/tasks/swift.yaml8
l---------qa/suites/rgw/verify/validater/.qa1
-rw-r--r--qa/suites/rgw/verify/validater/lockdep.yaml7
-rw-r--r--qa/suites/rgw/verify/validater/valgrind.yaml21
-rw-r--r--qa/suites/samba/%0
l---------qa/suites/samba/.qa1
l---------qa/suites/samba/clusters/.qa1
-rw-r--r--qa/suites/samba/clusters/samba-basic.yaml7
l---------qa/suites/samba/install/.qa1
-rw-r--r--qa/suites/samba/install/install.yaml9
l---------qa/suites/samba/mount/.qa1
-rw-r--r--qa/suites/samba/mount/fuse.yaml6
-rw-r--r--qa/suites/samba/mount/kclient.yaml14
-rw-r--r--qa/suites/samba/mount/native.yaml2
-rw-r--r--qa/suites/samba/mount/noceph.yaml5
l---------qa/suites/samba/objectstore1
l---------qa/suites/samba/workload/.qa1
-rw-r--r--qa/suites/samba/workload/cifs-dbench.yaml8
-rw-r--r--qa/suites/samba/workload/cifs-fsstress.yaml8
-rw-r--r--qa/suites/samba/workload/cifs-kernel-build.yaml.disabled9
-rw-r--r--qa/suites/samba/workload/smbtorture.yaml39
l---------qa/suites/smoke/.qa1
-rw-r--r--qa/suites/smoke/basic/%0
l---------qa/suites/smoke/basic/.qa1
-rw-r--r--qa/suites/smoke/basic/clusters/+0
l---------qa/suites/smoke/basic/clusters/.qa1
l---------qa/suites/smoke/basic/clusters/fixed-3-cephfs.yaml1
-rw-r--r--qa/suites/smoke/basic/clusters/openstack.yaml8
l---------qa/suites/smoke/basic/objectstore/.qa1
l---------qa/suites/smoke/basic/objectstore/bluestore-bitmap.yaml1
l---------qa/suites/smoke/basic/tasks/.qa1
-rw-r--r--qa/suites/smoke/basic/tasks/cfuse_workunit_suites_blogbench.yaml9
-rw-r--r--qa/suites/smoke/basic/tasks/cfuse_workunit_suites_fsstress.yaml8
-rw-r--r--qa/suites/smoke/basic/tasks/cfuse_workunit_suites_iozone.yaml8
-rw-r--r--qa/suites/smoke/basic/tasks/cfuse_workunit_suites_pjd.yaml18
-rw-r--r--qa/suites/smoke/basic/tasks/kclient_workunit_direct_io.yaml13
-rw-r--r--qa/suites/smoke/basic/tasks/kclient_workunit_suites_dbench.yaml14
-rw-r--r--qa/suites/smoke/basic/tasks/kclient_workunit_suites_fsstress.yaml14
-rw-r--r--qa/suites/smoke/basic/tasks/kclient_workunit_suites_pjd.yaml14
-rw-r--r--qa/suites/smoke/basic/tasks/libcephfs_interface_tests.yaml17
-rw-r--r--qa/suites/smoke/basic/tasks/mon_thrash.yaml36
-rw-r--r--qa/suites/smoke/basic/tasks/rados_api_tests.yaml30
-rw-r--r--qa/suites/smoke/basic/tasks/rados_bench.yaml47
-rw-r--r--qa/suites/smoke/basic/tasks/rados_cache_snaps.yaml51
-rw-r--r--qa/suites/smoke/basic/tasks/rados_cls_all.yaml16
-rw-r--r--qa/suites/smoke/basic/tasks/rados_ec_snaps.yaml41
-rw-r--r--qa/suites/smoke/basic/tasks/rados_python.yaml16
-rw-r--r--qa/suites/smoke/basic/tasks/rados_workunit_loadgen_mix.yaml13
-rw-r--r--qa/suites/smoke/basic/tasks/rbd_api_tests.yaml18
-rw-r--r--qa/suites/smoke/basic/tasks/rbd_cli_import_export.yaml11
-rw-r--r--qa/suites/smoke/basic/tasks/rbd_fsx.yaml30
-rw-r--r--qa/suites/smoke/basic/tasks/rbd_python_api_tests.yaml10
-rw-r--r--qa/suites/smoke/basic/tasks/rbd_workunit_suites_iozone.yaml17
-rw-r--r--qa/suites/smoke/basic/tasks/rgw_ec_s3tests.yaml20
-rw-r--r--qa/suites/smoke/basic/tasks/rgw_s3tests.yaml16
-rw-r--r--qa/suites/smoke/basic/tasks/rgw_swift.yaml9
l---------qa/suites/stress/.qa1
-rw-r--r--qa/suites/stress/bench/%0
l---------qa/suites/stress/bench/.qa1
l---------qa/suites/stress/bench/clusters/.qa1
l---------qa/suites/stress/bench/clusters/fixed-3-cephfs.yaml1
l---------qa/suites/stress/bench/tasks/.qa1
-rw-r--r--qa/suites/stress/bench/tasks/cfuse_workunit_snaps.yaml8
-rw-r--r--qa/suites/stress/bench/tasks/kclient_workunit_suites_fsx.yaml8
-rw-r--r--qa/suites/stress/thrash/%0
l---------qa/suites/stress/thrash/.qa1
l---------qa/suites/stress/thrash/clusters/.qa1
-rw-r--r--qa/suites/stress/thrash/clusters/16-osd.yaml18
-rw-r--r--qa/suites/stress/thrash/clusters/3-osd-1-machine.yaml3
-rw-r--r--qa/suites/stress/thrash/clusters/8-osd.yaml10
l---------qa/suites/stress/thrash/thrashers/.qa1
-rw-r--r--qa/suites/stress/thrash/thrashers/default.yaml7
-rw-r--r--qa/suites/stress/thrash/thrashers/fast.yaml9
-rw-r--r--qa/suites/stress/thrash/thrashers/more-down.yaml8
l---------qa/suites/stress/thrash/workloads/.qa1
-rw-r--r--qa/suites/stress/thrash/workloads/bonnie_cfuse.yaml6
-rw-r--r--qa/suites/stress/thrash/workloads/iozone_cfuse.yaml6
-rw-r--r--qa/suites/stress/thrash/workloads/radosbench.yaml4
-rw-r--r--qa/suites/stress/thrash/workloads/readwrite.yaml9
l---------qa/suites/teuthology/.qa1
-rw-r--r--qa/suites/teuthology/buildpackages/%0
l---------qa/suites/teuthology/buildpackages/.qa1
l---------qa/suites/teuthology/buildpackages/supported-all-distro1
l---------qa/suites/teuthology/buildpackages/tasks/.qa1
-rw-r--r--qa/suites/teuthology/buildpackages/tasks/branch.yaml10
-rw-r--r--qa/suites/teuthology/buildpackages/tasks/default.yaml14
-rw-r--r--qa/suites/teuthology/buildpackages/tasks/tag.yaml11
-rw-r--r--qa/suites/teuthology/ceph/%0
l---------qa/suites/teuthology/ceph/.qa1
l---------qa/suites/teuthology/ceph/clusters/.qa1
-rw-r--r--qa/suites/teuthology/ceph/clusters/single.yaml2
l---------qa/suites/teuthology/ceph/distros1
l---------qa/suites/teuthology/ceph/tasks/.qa1
-rw-r--r--qa/suites/teuthology/ceph/tasks/teuthology.yaml3
-rw-r--r--qa/suites/teuthology/integration.yaml2
-rw-r--r--qa/suites/teuthology/multi-cluster/%0
l---------qa/suites/teuthology/multi-cluster/.qa1
l---------qa/suites/teuthology/multi-cluster/all/.qa1
-rw-r--r--qa/suites/teuthology/multi-cluster/all/ceph.yaml25
-rw-r--r--qa/suites/teuthology/multi-cluster/all/thrashosds.yaml21
-rw-r--r--qa/suites/teuthology/multi-cluster/all/upgrade.yaml51
-rw-r--r--qa/suites/teuthology/multi-cluster/all/workunit.yaml23
-rw-r--r--qa/suites/teuthology/no-ceph/%0
l---------qa/suites/teuthology/no-ceph/.qa1
l---------qa/suites/teuthology/no-ceph/clusters/.qa1
-rw-r--r--qa/suites/teuthology/no-ceph/clusters/single.yaml2
l---------qa/suites/teuthology/no-ceph/tasks/.qa1
-rw-r--r--qa/suites/teuthology/no-ceph/tasks/teuthology.yaml2
-rw-r--r--qa/suites/teuthology/nop/%0
l---------qa/suites/teuthology/nop/.qa1
l---------qa/suites/teuthology/nop/all/.qa1
-rw-r--r--qa/suites/teuthology/nop/all/nop.yaml3
-rw-r--r--qa/suites/teuthology/rgw/%0
l---------qa/suites/teuthology/rgw/.qa1
l---------qa/suites/teuthology/rgw/distros1
l---------qa/suites/teuthology/rgw/tasks/.qa1
-rw-r--r--qa/suites/teuthology/rgw/tasks/s3tests-civetweb.yaml24
-rw-r--r--qa/suites/teuthology/rgw/tasks/s3tests-fastcgi.yaml24
-rw-r--r--qa/suites/teuthology/rgw/tasks/s3tests-fcgi.yaml26
l---------qa/suites/teuthology/workunits/.qa1
-rw-r--r--qa/suites/teuthology/workunits/yes.yaml8
l---------qa/suites/tgt/.qa1
-rw-r--r--qa/suites/tgt/basic/%1
l---------qa/suites/tgt/basic/.qa1
l---------qa/suites/tgt/basic/clusters/.qa1
-rw-r--r--qa/suites/tgt/basic/clusters/fixed-3.yaml4
l---------qa/suites/tgt/basic/msgr-failures/.qa1
-rw-r--r--qa/suites/tgt/basic/msgr-failures/few.yaml7
-rw-r--r--qa/suites/tgt/basic/msgr-failures/many.yaml7
l---------qa/suites/tgt/basic/tasks/.qa1
-rw-r--r--qa/suites/tgt/basic/tasks/blogbench.yaml9
-rw-r--r--qa/suites/tgt/basic/tasks/bonnie.yaml9
-rw-r--r--qa/suites/tgt/basic/tasks/dbench-short.yaml9
-rw-r--r--qa/suites/tgt/basic/tasks/dbench.yaml9
-rw-r--r--qa/suites/tgt/basic/tasks/ffsb.yaml9
-rw-r--r--qa/suites/tgt/basic/tasks/fio.yaml9
-rw-r--r--qa/suites/tgt/basic/tasks/fsstress.yaml9
-rw-r--r--qa/suites/tgt/basic/tasks/fsx.yaml9
-rw-r--r--qa/suites/tgt/basic/tasks/fsync-tester.yaml9
-rw-r--r--qa/suites/tgt/basic/tasks/iogen.yaml9
-rw-r--r--qa/suites/tgt/basic/tasks/iozone-sync.yaml9
-rw-r--r--qa/suites/tgt/basic/tasks/iozone.yaml9
-rw-r--r--qa/suites/tgt/basic/tasks/pjd.yaml9
l---------qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/%0
l---------qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/+0
l---------qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/openstack.yaml4
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/start.yaml21
l---------qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml11
l---------qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/defaults.yaml6
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/layering.yaml6
l---------qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml33
l---------qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/.qa1
l---------qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml1
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/.qa1
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/%0
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/+0
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/openstack.yaml4
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/start.yaml23
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/1-install/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/1-install/nautilus-client-x.yaml11
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/devstack-tempest-gate.yaml56
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/.qa1
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/centos_7.6.yaml1
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/rhel_7.6.yaml1
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_16.04.yaml1
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_18.04.yaml1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/%0
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/+0
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/openstack.yaml4
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/start.yaml21
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml11
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/defaults.yaml6
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/layering.yaml6
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/.qa1
-rw-r--r--qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml21
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/.qa1
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/centos_7.6.yaml1
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/rhel_7.6.yaml1
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_16.04.yaml1
l---------qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml1
l---------qa/suites/upgrade/.qa1
l---------qa/suites/upgrade/luminous-x/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/%0
l---------qa/suites/upgrade/luminous-x/parallel/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/0-cluster/+0
l---------qa/suites/upgrade/luminous-x/parallel/0-cluster/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/0-cluster/openstack.yaml4
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/0-cluster/start.yaml50
l---------qa/suites/upgrade/luminous-x/parallel/1-ceph-install/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/1-ceph-install/luminous.yaml54
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/1.1-pg-log-overrides/normal_pg_log.yaml1
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/1.1-pg-log-overrides/short_pg_log.yaml6
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/2-workload/+0
l---------qa/suites/upgrade/luminous-x/parallel/2-workload/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/2-workload/blogbench.yaml14
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/2-workload/ec-rados-default.yaml24
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/2-workload/rados_api.yaml11
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/2-workload/rados_loadgenbig.yaml11
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/2-workload/rgw_ragweed_prepare.yaml14
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/2-workload/test_rbd_api.yaml11
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/2-workload/test_rbd_python.yaml11
l---------qa/suites/upgrade/luminous-x/parallel/3-upgrade-sequence/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/3-upgrade-sequence/upgrade-all.yaml22
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/3-upgrade-sequence/upgrade-mon-osd-mds.yaml50
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/4-msgr2.yaml5
l---------qa/suites/upgrade/luminous-x/parallel/4-nautilus.yaml1
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/5-final-workload/+0
l---------qa/suites/upgrade/luminous-x/parallel/5-final-workload/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/5-final-workload/blogbench.yaml13
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados-snaps-few-objects.yaml17
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados_loadgenmix.yaml9
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados_mon_thrash.yaml18
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/5-final-workload/rbd_cls.yaml9
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/5-final-workload/rbd_import_export.yaml11
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/5-final-workload/rgw.yaml8
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/5-final-workload/rgw_ragweed_check.yaml11
-rw-r--r--qa/suites/upgrade/luminous-x/parallel/5-final-workload/rgw_swift.yaml10
l---------qa/suites/upgrade/luminous-x/parallel/objectstore1
l---------qa/suites/upgrade/luminous-x/parallel/supported-all-distro1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split-erasure-code/%0
l---------qa/suites/upgrade/luminous-x/stress-split-erasure-code/.qa1
l---------qa/suites/upgrade/luminous-x/stress-split-erasure-code/0-cluster1
l---------qa/suites/upgrade/luminous-x/stress-split-erasure-code/1-luminous-install1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split-erasure-code/1.1-pg-log-overrides/normal_pg_log.yaml1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split-erasure-code/1.1-pg-log-overrides/short_pg_log.yaml6
l---------qa/suites/upgrade/luminous-x/stress-split-erasure-code/2-partial-upgrade1
l---------qa/suites/upgrade/luminous-x/stress-split-erasure-code/3-thrash/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split-erasure-code/3-thrash/default.yaml27
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split-erasure-code/4-ec-workload.yaml22
l---------qa/suites/upgrade/luminous-x/stress-split-erasure-code/5-finish-upgrade.yaml1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split-erasure-code/7-final-workload.yaml35
l---------qa/suites/upgrade/luminous-x/stress-split-erasure-code/objectstore1
l---------qa/suites/upgrade/luminous-x/stress-split-erasure-code/supported-all-distro1
l---------qa/suites/upgrade/luminous-x/stress-split-erasure-code/thrashosds-health.yaml1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/%0
l---------qa/suites/upgrade/luminous-x/stress-split/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/0-cluster/+0
l---------qa/suites/upgrade/luminous-x/stress-split/0-cluster/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/0-cluster/openstack.yaml6
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/0-cluster/start.yaml40
l---------qa/suites/upgrade/luminous-x/stress-split/1-ceph-install/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/1-ceph-install/luminous.yaml29
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/1.1-pg-log-overrides/normal_pg_log.yaml1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/1.1-pg-log-overrides/short_pg_log.yaml6
l---------qa/suites/upgrade/luminous-x/stress-split/2-partial-upgrade/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/2-partial-upgrade/firsthalf.yaml14
l---------qa/suites/upgrade/luminous-x/stress-split/3-thrash/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/3-thrash/default.yaml26
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/4-workload/+0
l---------qa/suites/upgrade/luminous-x/stress-split/4-workload/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/4-workload/radosbench.yaml52
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/4-workload/rbd-cls.yaml10
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/4-workload/rbd-import-export.yaml12
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/4-workload/rbd_api.yaml10
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/4-workload/readwrite.yaml16
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/4-workload/snaps-few-objects.yaml18
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/5-finish-upgrade.yaml15
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/6-msgr2.yaml6
l---------qa/suites/upgrade/luminous-x/stress-split/6-nautilus.yaml1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/7-final-workload/+0
l---------qa/suites/upgrade/luminous-x/stress-split/7-final-workload/.qa1
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/7-final-workload/rgw-swift.yaml12
-rw-r--r--qa/suites/upgrade/luminous-x/stress-split/7-final-workload/snaps-many-objects.yaml16
l---------qa/suites/upgrade/luminous-x/stress-split/objectstore/.qa1
l---------qa/suites/upgrade/luminous-x/stress-split/objectstore/bluestore-bitmap.yaml1
l---------qa/suites/upgrade/luminous-x/stress-split/objectstore/filestore-xfs.yaml1
l---------qa/suites/upgrade/luminous-x/stress-split/supported-all-distro1
l---------qa/suites/upgrade/luminous-x/stress-split/thrashosds-health.yaml1
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/%0
l---------qa/suites/upgrade/mimic-x-singleton/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/0-cluster/+0
l---------qa/suites/upgrade/mimic-x-singleton/0-cluster/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/0-cluster/openstack.yaml6
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/0-cluster/start.yaml37
l---------qa/suites/upgrade/mimic-x-singleton/1-install/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/1-install/mimic.yaml25
l---------qa/suites/upgrade/mimic-x-singleton/2-partial-upgrade/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/2-partial-upgrade/firsthalf.yaml18
l---------qa/suites/upgrade/mimic-x-singleton/3-thrash/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/3-thrash/default.yaml22
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/4-workload/+0
l---------qa/suites/upgrade/mimic-x-singleton/4-workload/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/4-workload/rbd-cls.yaml11
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/4-workload/rbd-import-export.yaml13
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/4-workload/readwrite.yaml17
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/4-workload/snaps-few-objects.yaml19
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/5-workload/+0
l---------qa/suites/upgrade/mimic-x-singleton/5-workload/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/5-workload/radosbench.yaml41
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/5-workload/rbd_api.yaml11
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/6-finish-upgrade.yaml30
l---------qa/suites/upgrade/mimic-x-singleton/7-nautilus.yaml1
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/8-workload/+0
l---------qa/suites/upgrade/mimic-x-singleton/8-workload/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/8-workload/rbd-python.yaml9
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/8-workload/rgw-swift.yaml12
-rw-r--r--qa/suites/upgrade/mimic-x-singleton/8-workload/snaps-many-objects.yaml16
l---------qa/suites/upgrade/mimic-x-singleton/supported-random-distro$1
l---------qa/suites/upgrade/mimic-x-singleton/thrashosds-health.yaml1
l---------qa/suites/upgrade/mimic-x/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/%0
l---------qa/suites/upgrade/mimic-x/parallel/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/0-cluster/+0
l---------qa/suites/upgrade/mimic-x/parallel/0-cluster/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/0-cluster/openstack.yaml4
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/0-cluster/start.yaml49
l---------qa/suites/upgrade/mimic-x/parallel/1-ceph-install/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/1-ceph-install/mimic.yaml55
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/1.1-pg-log-overrides/normal_pg_log.yaml1
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/1.1-pg-log-overrides/short_pg_log.yaml6
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/2-workload/+0
l---------qa/suites/upgrade/mimic-x/parallel/2-workload/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/2-workload/blogbench.yaml14
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/2-workload/ec-rados-default.yaml24
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/2-workload/rados_api.yaml11
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/2-workload/rados_loadgenbig.yaml11
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/2-workload/rgw_ragweed_prepare.yaml14
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/2-workload/test_rbd_api.yaml11
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/2-workload/test_rbd_python.yaml11
l---------qa/suites/upgrade/mimic-x/parallel/3-upgrade-sequence/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/3-upgrade-sequence/upgrade-all.yaml22
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/3-upgrade-sequence/upgrade-mon-osd-mds.yaml51
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/4-msgr2.yaml5
l---------qa/suites/upgrade/mimic-x/parallel/4-nautilus.yaml1
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/5-final-workload/+0
l---------qa/suites/upgrade/mimic-x/parallel/5-final-workload/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/5-final-workload/blogbench.yaml13
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/5-final-workload/rados-snaps-few-objects.yaml17
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/5-final-workload/rados_loadgenmix.yaml9
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/5-final-workload/rados_mon_thrash.yaml18
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/5-final-workload/rbd_cls.yaml9
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/5-final-workload/rbd_import_export.yaml11
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw.yaml8
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw_ragweed_check.yaml11
-rw-r--r--qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw_swift.yaml10
l---------qa/suites/upgrade/mimic-x/parallel/objectstore1
l---------qa/suites/upgrade/mimic-x/parallel/supported-all-distro1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split-erasure-code/%0
l---------qa/suites/upgrade/mimic-x/stress-split-erasure-code/.qa1
l---------qa/suites/upgrade/mimic-x/stress-split-erasure-code/0-cluster1
l---------qa/suites/upgrade/mimic-x/stress-split-erasure-code/1-luminous-install1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split-erasure-code/1.1-pg-log-overrides/normal_pg_log.yaml1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split-erasure-code/1.1-pg-log-overrides/short_pg_log.yaml6
l---------qa/suites/upgrade/mimic-x/stress-split-erasure-code/2-partial-upgrade1
l---------qa/suites/upgrade/mimic-x/stress-split-erasure-code/3-thrash/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split-erasure-code/3-thrash/default.yaml26
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split-erasure-code/4-ec-workload.yaml22
l---------qa/suites/upgrade/mimic-x/stress-split-erasure-code/5-finish-upgrade.yaml1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split-erasure-code/7-final-workload.yaml35
l---------qa/suites/upgrade/mimic-x/stress-split-erasure-code/objectstore1
l---------qa/suites/upgrade/mimic-x/stress-split-erasure-code/supported-all-distro1
l---------qa/suites/upgrade/mimic-x/stress-split-erasure-code/thrashosds-health.yaml1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/%0
l---------qa/suites/upgrade/mimic-x/stress-split/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/0-cluster/+0
l---------qa/suites/upgrade/mimic-x/stress-split/0-cluster/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/0-cluster/openstack.yaml6
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/0-cluster/start.yaml42
l---------qa/suites/upgrade/mimic-x/stress-split/1-ceph-install/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/1-ceph-install/mimic.yaml29
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/1.1-pg-log-overrides/normal_pg_log.yaml1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/1.1-pg-log-overrides/short_pg_log.yaml6
l---------qa/suites/upgrade/mimic-x/stress-split/2-partial-upgrade/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/2-partial-upgrade/firsthalf.yaml14
l---------qa/suites/upgrade/mimic-x/stress-split/3-thrash/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/3-thrash/default.yaml26
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/4-workload/+0
l---------qa/suites/upgrade/mimic-x/stress-split/4-workload/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/4-workload/radosbench.yaml52
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/4-workload/rbd-cls.yaml10
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/4-workload/rbd-import-export.yaml12
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/4-workload/rbd_api.yaml10
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/4-workload/readwrite.yaml16
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/4-workload/rgw_ragweed_prepare.yaml14
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/4-workload/snaps-few-objects.yaml18
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/5-finish-upgrade.yaml14
l---------qa/suites/upgrade/mimic-x/stress-split/6-nautilus.yaml1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/6.1-msgr2.yaml5
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/7-final-workload/+0
l---------qa/suites/upgrade/mimic-x/stress-split/7-final-workload/.qa1
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/7-final-workload/rbd-python.yaml10
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/7-final-workload/rgw-swift-ragweed_check.yaml19
-rw-r--r--qa/suites/upgrade/mimic-x/stress-split/7-final-workload/snaps-many-objects.yaml16
l---------qa/suites/upgrade/mimic-x/stress-split/objectstore/.qa1
l---------qa/suites/upgrade/mimic-x/stress-split/objectstore/bluestore-bitmap.yaml1
l---------qa/suites/upgrade/mimic-x/stress-split/objectstore/filestore-xfs.yaml1
l---------qa/suites/upgrade/mimic-x/stress-split/supported-all-distro1
l---------qa/suites/upgrade/mimic-x/stress-split/thrashosds-health.yaml1
l---------qa/suites/upgrade/nautilus-p2p/.qa1
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/%0
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/point-to-point-upgrade.yaml182
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/supported-all-distro1
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/%0
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/.qa1
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/+0
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/.qa1
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/openstack.yaml6
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/start.yaml35
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/1-ceph-install/.qa1
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/1-ceph-install/nautilus.yaml19
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/1.1.short_pg_log.yaml1
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/2-partial-upgrade/.qa1
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/2-partial-upgrade/firsthalf.yaml13
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/3-thrash/.qa1
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/3-thrash/default.yaml27
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/+0
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/.qa1
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/fsx.yaml8
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/radosbench.yaml52
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/rbd-cls.yaml10
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/rbd-import-export.yaml12
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/rbd_api.yaml10
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/readwrite.yaml16
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/snaps-few-objects.yaml18
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/5-finish-upgrade.yaml8
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/+0
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/.qa1
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/rbd-python.yaml10
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/rgw-swift.yaml12
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/snaps-many-objects.yaml16
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/.qa1
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/bluestore-bitmap.yaml1
-rw-r--r--qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/default.yaml0
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/filestore-xfs.yaml1
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/supported-all-distro1
l---------qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/thrashosds-health.yaml1
2199 files changed, 15003 insertions, 0 deletions
diff --git a/qa/suites/.qa b/qa/suites/.qa
new file mode 120000
index 00000000..b870225a
--- /dev/null
+++ b/qa/suites/.qa
@@ -0,0 +1 @@
+../ \ No newline at end of file
diff --git a/qa/suites/big/.qa b/qa/suites/big/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/big/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/big/rados-thrash/% b/qa/suites/big/rados-thrash/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/big/rados-thrash/%
diff --git a/qa/suites/big/rados-thrash/.qa b/qa/suites/big/rados-thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/big/rados-thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/big/rados-thrash/ceph/.qa b/qa/suites/big/rados-thrash/ceph/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/big/rados-thrash/ceph/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/big/rados-thrash/ceph/ceph.yaml b/qa/suites/big/rados-thrash/ceph/ceph.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/big/rados-thrash/ceph/ceph.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/big/rados-thrash/clusters/.qa b/qa/suites/big/rados-thrash/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/big/rados-thrash/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/big/rados-thrash/clusters/big.yaml b/qa/suites/big/rados-thrash/clusters/big.yaml
new file mode 100644
index 00000000..fd8c2174
--- /dev/null
+++ b/qa/suites/big/rados-thrash/clusters/big.yaml
@@ -0,0 +1,68 @@
+roles:
+- [osd.0, osd.1, osd.2, client.0, mon.a, mgr.x]
+- [osd.3, osd.4, osd.5, client.1, mon.b, mgr.y]
+- [osd.6, osd.7, osd.8, client.2, mon.c, mgr.z]
+- [osd.9, osd.10, osd.11, client.3, mon.d]
+- [osd.12, osd.13, osd.14, client.4, mon.e]
+- [osd.15, osd.16, osd.17, client.5]
+- [osd.18, osd.19, osd.20, client.6]
+- [osd.21, osd.22, osd.23, client.7]
+- [osd.24, osd.25, osd.26, client.8]
+- [osd.27, osd.28, osd.29, client.9]
+- [osd.30, osd.31, osd.32, client.10]
+- [osd.33, osd.34, osd.35, client.11]
+- [osd.36, osd.37, osd.38, client.12]
+- [osd.39, osd.40, osd.41, client.13]
+- [osd.42, osd.43, osd.44, client.14]
+- [osd.45, osd.46, osd.47, client.15]
+- [osd.48, osd.49, osd.50, client.16]
+- [osd.51, osd.52, osd.53, client.17]
+- [osd.54, osd.55, osd.56, client.18]
+- [osd.57, osd.58, osd.59, client.19]
+- [osd.60, osd.61, osd.62, client.20]
+- [osd.63, osd.64, osd.65, client.21]
+- [osd.66, osd.67, osd.68, client.22]
+- [osd.69, osd.70, osd.71, client.23]
+- [osd.72, osd.73, osd.74, client.24]
+- [osd.75, osd.76, osd.77, client.25]
+- [osd.78, osd.79, osd.80, client.26]
+- [osd.81, osd.82, osd.83, client.27]
+- [osd.84, osd.85, osd.86, client.28]
+- [osd.87, osd.88, osd.89, client.29]
+- [osd.90, osd.91, osd.92, client.30]
+- [osd.93, osd.94, osd.95, client.31]
+- [osd.96, osd.97, osd.98, client.32]
+- [osd.99, osd.100, osd.101, client.33]
+- [osd.102, osd.103, osd.104, client.34]
+- [osd.105, osd.106, osd.107, client.35]
+- [osd.108, osd.109, osd.110, client.36]
+- [osd.111, osd.112, osd.113, client.37]
+- [osd.114, osd.115, osd.116, client.38]
+- [osd.117, osd.118, osd.119, client.39]
+- [osd.120, osd.121, osd.122, client.40]
+- [osd.123, osd.124, osd.125, client.41]
+- [osd.126, osd.127, osd.128, client.42]
+- [osd.129, osd.130, osd.131, client.43]
+- [osd.132, osd.133, osd.134, client.44]
+- [osd.135, osd.136, osd.137, client.45]
+- [osd.138, osd.139, osd.140, client.46]
+- [osd.141, osd.142, osd.143, client.47]
+- [osd.144, osd.145, osd.146, client.48]
+- [osd.147, osd.148, osd.149, client.49]
+- [osd.150, osd.151, osd.152, client.50]
+#- [osd.153, osd.154, osd.155, client.51]
+#- [osd.156, osd.157, osd.158, client.52]
+#- [osd.159, osd.160, osd.161, client.53]
+#- [osd.162, osd.163, osd.164, client.54]
+#- [osd.165, osd.166, osd.167, client.55]
+#- [osd.168, osd.169, osd.170, client.56]
+#- [osd.171, osd.172, osd.173, client.57]
+#- [osd.174, osd.175, osd.176, client.58]
+#- [osd.177, osd.178, osd.179, client.59]
+#- [osd.180, osd.181, osd.182, client.60]
+#- [osd.183, osd.184, osd.185, client.61]
+#- [osd.186, osd.187, osd.188, client.62]
+#- [osd.189, osd.190, osd.191, client.63]
+#- [osd.192, osd.193, osd.194, client.64]
+#- [osd.195, osd.196, osd.197, client.65]
+#- [osd.198, osd.199, osd.200, client.66]
diff --git a/qa/suites/big/rados-thrash/clusters/medium.yaml b/qa/suites/big/rados-thrash/clusters/medium.yaml
new file mode 100644
index 00000000..ecded01b
--- /dev/null
+++ b/qa/suites/big/rados-thrash/clusters/medium.yaml
@@ -0,0 +1,22 @@
+roles:
+- [osd.0, osd.1, osd.2, client.0, mon.a, mgr.x]
+- [osd.3, osd.4, osd.5, client.1, mon.b, mgr.y]
+- [osd.6, osd.7, osd.8, client.2, mon.c, mgr.z]
+- [osd.9, osd.10, osd.11, client.3, mon.d]
+- [osd.12, osd.13, osd.14, client.4, mon.e]
+- [osd.15, osd.16, osd.17, client.5]
+- [osd.18, osd.19, osd.20, client.6]
+- [osd.21, osd.22, osd.23, client.7]
+- [osd.24, osd.25, osd.26, client.8]
+- [osd.27, osd.28, osd.29, client.9]
+- [osd.30, osd.31, osd.32, client.10]
+- [osd.33, osd.34, osd.35, client.11]
+- [osd.36, osd.37, osd.38, client.12]
+- [osd.39, osd.40, osd.41, client.13]
+- [osd.42, osd.43, osd.44, client.14]
+- [osd.45, osd.46, osd.47, client.15]
+- [osd.48, osd.49, osd.50, client.16]
+- [osd.51, osd.52, osd.53, client.17]
+- [osd.54, osd.55, osd.56, client.18]
+- [osd.57, osd.58, osd.59, client.19]
+- [osd.60, osd.61, osd.62, client.20]
diff --git a/qa/suites/big/rados-thrash/clusters/small.yaml b/qa/suites/big/rados-thrash/clusters/small.yaml
new file mode 100644
index 00000000..d0aecd00
--- /dev/null
+++ b/qa/suites/big/rados-thrash/clusters/small.yaml
@@ -0,0 +1,6 @@
+roles:
+- [osd.0, osd.1, osd.2, client.0, mon.a, mgr.x]
+- [osd.3, osd.4, osd.5, client.1, mon.b, mgr.y]
+- [osd.6, osd.7, osd.8, client.2, mon.c, mgr.z]
+- [osd.9, osd.10, osd.11, client.3, mon.d]
+- [osd.12, osd.13, osd.14, client.4, mon.e]
diff --git a/qa/suites/big/rados-thrash/objectstore b/qa/suites/big/rados-thrash/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/big/rados-thrash/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/big/rados-thrash/openstack.yaml b/qa/suites/big/rados-thrash/openstack.yaml
new file mode 100644
index 00000000..4d6edcd0
--- /dev/null
+++ b/qa/suites/big/rados-thrash/openstack.yaml
@@ -0,0 +1,8 @@
+openstack:
+ - machine:
+ disk: 40 # GB
+ ram: 8000 # MB
+ cpus: 1
+ volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
diff --git a/qa/suites/big/rados-thrash/thrashers/.qa b/qa/suites/big/rados-thrash/thrashers/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/big/rados-thrash/thrashers/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/big/rados-thrash/thrashers/default.yaml b/qa/suites/big/rados-thrash/thrashers/default.yaml
new file mode 100644
index 00000000..8f2b2667
--- /dev/null
+++ b/qa/suites/big/rados-thrash/thrashers/default.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
diff --git a/qa/suites/big/rados-thrash/workloads/.qa b/qa/suites/big/rados-thrash/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/big/rados-thrash/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/big/rados-thrash/workloads/snaps-few-objects.yaml b/qa/suites/big/rados-thrash/workloads/snaps-few-objects.yaml
new file mode 100644
index 00000000..b73bb678
--- /dev/null
+++ b/qa/suites/big/rados-thrash/workloads/snaps-few-objects.yaml
@@ -0,0 +1,13 @@
+tasks:
+- rados:
+ ops: 4000
+ max_seconds: 3600
+ objects: 50
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
diff --git a/qa/suites/buildpackages/.qa b/qa/suites/buildpackages/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/buildpackages/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/buildpackages/any/% b/qa/suites/buildpackages/any/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/buildpackages/any/%
diff --git a/qa/suites/buildpackages/any/.qa b/qa/suites/buildpackages/any/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/buildpackages/any/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/buildpackages/any/distros b/qa/suites/buildpackages/any/distros
new file mode 120000
index 00000000..0e1f1303
--- /dev/null
+++ b/qa/suites/buildpackages/any/distros
@@ -0,0 +1 @@
+.qa/distros/all \ No newline at end of file
diff --git a/qa/suites/buildpackages/any/tasks/.qa b/qa/suites/buildpackages/any/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/buildpackages/any/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/buildpackages/any/tasks/release.yaml b/qa/suites/buildpackages/any/tasks/release.yaml
new file mode 100644
index 00000000..d7a3b62c
--- /dev/null
+++ b/qa/suites/buildpackages/any/tasks/release.yaml
@@ -0,0 +1,8 @@
+# --suite buildpackages/any --ceph v10.0.1 --filter centos_7,ubuntu_14.04
+roles:
+ - [client.0]
+tasks:
+ - install:
+ - exec:
+ client.0:
+ - ceph --version | grep 'version '
diff --git a/qa/suites/buildpackages/tests/% b/qa/suites/buildpackages/tests/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/buildpackages/tests/%
diff --git a/qa/suites/buildpackages/tests/.qa b/qa/suites/buildpackages/tests/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/buildpackages/tests/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/buildpackages/tests/distros b/qa/suites/buildpackages/tests/distros
new file mode 120000
index 00000000..0e1f1303
--- /dev/null
+++ b/qa/suites/buildpackages/tests/distros
@@ -0,0 +1 @@
+.qa/distros/all \ No newline at end of file
diff --git a/qa/suites/buildpackages/tests/tasks/.qa b/qa/suites/buildpackages/tests/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/buildpackages/tests/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/buildpackages/tests/tasks/release.yaml b/qa/suites/buildpackages/tests/tasks/release.yaml
new file mode 100644
index 00000000..05e87789
--- /dev/null
+++ b/qa/suites/buildpackages/tests/tasks/release.yaml
@@ -0,0 +1,20 @@
+# --suite buildpackages/tests --ceph v10.0.1 --filter centos_7.2,ubuntu_14.04
+overrides:
+ ansible.cephlab:
+ playbook: users.yml
+ buildpackages:
+ good_machine:
+ disk: 20 # GB
+ ram: 2000 # MB
+ cpus: 2
+ min_machine:
+ disk: 10 # GB
+ ram: 1000 # MB
+ cpus: 1
+roles:
+ - [client.0]
+tasks:
+ - install:
+ - exec:
+ client.0:
+ - ceph --version | grep 'version '
diff --git a/qa/suites/ceph-ansible/.qa b/qa/suites/ceph-ansible/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-ansible/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-ansible/smoke/.qa b/qa/suites/ceph-ansible/smoke/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-ansible/smoke/basic/% b/qa/suites/ceph-ansible/smoke/basic/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/%
diff --git a/qa/suites/ceph-ansible/smoke/basic/.qa b/qa/suites/ceph-ansible/smoke/basic/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-ansible/smoke/basic/0-clusters/.qa b/qa/suites/ceph-ansible/smoke/basic/0-clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/0-clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-ansible/smoke/basic/0-clusters/3-node.yaml b/qa/suites/ceph-ansible/smoke/basic/0-clusters/3-node.yaml
new file mode 100644
index 00000000..86dd366b
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/0-clusters/3-node.yaml
@@ -0,0 +1,12 @@
+meta:
+- desc: |
+ 3-node cluster
+ install and run ceph-ansible on a mon.a node alone with ceph
+roles:
+- [mon.a, mds.a, osd.0, osd.1, osd.2]
+- [mon.b, mgr.x, osd.3, osd.4, osd.5]
+- [mon.c, mgr.y, osd.6, osd.7, osd.8, client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
diff --git a/qa/suites/ceph-ansible/smoke/basic/0-clusters/4-node.yaml b/qa/suites/ceph-ansible/smoke/basic/0-clusters/4-node.yaml
new file mode 100644
index 00000000..b1754432
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/0-clusters/4-node.yaml
@@ -0,0 +1,13 @@
+meta:
+- desc: |
+ 4-node cluster
+ install and run ceph-ansible on installer.0 stand alone node
+roles:
+- [mon.a, mds.a, osd.0, osd.1, osd.2]
+- [mon.b, mgr.x, osd.3, osd.4, osd.5]
+- [mon.c, mgr.y, osd.6, osd.7, osd.8, client.0]
+- [installer.0]
+openstack:
+- volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
diff --git a/qa/suites/ceph-ansible/smoke/basic/1-distros/.qa b/qa/suites/ceph-ansible/smoke/basic/1-distros/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/1-distros/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-ansible/smoke/basic/1-distros/centos_latest.yaml b/qa/suites/ceph-ansible/smoke/basic/1-distros/centos_latest.yaml
new file mode 120000
index 00000000..bd9854e7
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/1-distros/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/ceph-ansible/smoke/basic/1-distros/ubuntu_latest.yaml b/qa/suites/ceph-ansible/smoke/basic/1-distros/ubuntu_latest.yaml
new file mode 120000
index 00000000..3a09f9ab
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/1-distros/ubuntu_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/ubuntu_latest.yaml \ No newline at end of file
diff --git a/qa/suites/ceph-ansible/smoke/basic/2-ceph/.qa b/qa/suites/ceph-ansible/smoke/basic/2-ceph/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/2-ceph/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-ansible/smoke/basic/2-ceph/ceph_ansible.yaml b/qa/suites/ceph-ansible/smoke/basic/2-ceph/ceph_ansible.yaml
new file mode 100644
index 00000000..b13ab61a
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/2-ceph/ceph_ansible.yaml
@@ -0,0 +1,35 @@
+meta:
+- desc: "Build the ceph cluster using ceph-ansible"
+
+overrides:
+ ceph_ansible:
+ ansible-version: '2.9'
+ branch: stable-4.0
+ vars:
+ ceph_conf_overrides:
+ global:
+ osd default pool size: 2
+ mon pg warn min per osd: 2
+ osd pool default pg num: 64
+ osd pool default pgp num: 64
+ mon_max_pg_per_osd: 1024
+ ceph_test: true
+ ceph_stable_release: mimic
+ osd_scenario: lvm
+ journal_size: 1024
+ osd_auto_discovery: false
+ ceph_origin: repository
+ ceph_repository: dev
+ ceph_mgr_modules:
+ - status
+ - restful
+ cephfs_pools:
+ - name: "cephfs_data"
+ pg_num: "64"
+ - name: "cephfs_metadata"
+ pg_num: "64"
+ dashboard_enabled: false
+tasks:
+- ssh-keys:
+- ceph_ansible:
+- install.ship_utilities:
diff --git a/qa/suites/ceph-ansible/smoke/basic/3-config/.qa b/qa/suites/ceph-ansible/smoke/basic/3-config/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/3-config/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-ansible/smoke/basic/3-config/bluestore_with_dmcrypt.yaml b/qa/suites/ceph-ansible/smoke/basic/3-config/bluestore_with_dmcrypt.yaml
new file mode 100644
index 00000000..604e757a
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/3-config/bluestore_with_dmcrypt.yaml
@@ -0,0 +1,8 @@
+meta:
+- desc: "use bluestore + dmcrypt option"
+
+overrides:
+ ceph_ansible:
+ vars:
+ osd_objectstore: bluestore
+ dmcrypt: True
diff --git a/qa/suites/ceph-ansible/smoke/basic/3-config/dmcrypt_off.yaml b/qa/suites/ceph-ansible/smoke/basic/3-config/dmcrypt_off.yaml
new file mode 100644
index 00000000..4bbd1c7c
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/3-config/dmcrypt_off.yaml
@@ -0,0 +1,7 @@
+meta:
+- desc: "without dmcrypt"
+
+overrides:
+ ceph_ansible:
+ vars:
+ dmcrypt: False
diff --git a/qa/suites/ceph-ansible/smoke/basic/3-config/dmcrypt_on.yaml b/qa/suites/ceph-ansible/smoke/basic/3-config/dmcrypt_on.yaml
new file mode 100644
index 00000000..12d63d32
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/3-config/dmcrypt_on.yaml
@@ -0,0 +1,7 @@
+meta:
+- desc: "use dmcrypt option"
+
+overrides:
+ ceph_ansible:
+ vars:
+ dmcrypt: True
diff --git a/qa/suites/ceph-ansible/smoke/basic/4-tasks/.qa b/qa/suites/ceph-ansible/smoke/basic/4-tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/4-tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-ansible/smoke/basic/4-tasks/ceph-admin-commands.yaml b/qa/suites/ceph-ansible/smoke/basic/4-tasks/ceph-admin-commands.yaml
new file mode 100644
index 00000000..33642d5c
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/4-tasks/ceph-admin-commands.yaml
@@ -0,0 +1,7 @@
+meta:
+- desc: "Run ceph-admin-commands.sh"
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - ceph-tests/ceph-admin-commands.sh
diff --git a/qa/suites/ceph-ansible/smoke/basic/4-tasks/rbd_import_export.yaml b/qa/suites/ceph-ansible/smoke/basic/4-tasks/rbd_import_export.yaml
new file mode 100644
index 00000000..9495934e
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/4-tasks/rbd_import_export.yaml
@@ -0,0 +1,7 @@
+meta:
+- desc: "Run the rbd import/export tests"
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/import_export.sh
diff --git a/qa/suites/ceph-ansible/smoke/basic/4-tasks/rest.yaml b/qa/suites/ceph-ansible/smoke/basic/4-tasks/rest.yaml
new file mode 100644
index 00000000..8e389134
--- /dev/null
+++ b/qa/suites/ceph-ansible/smoke/basic/4-tasks/rest.yaml
@@ -0,0 +1,15 @@
+tasks:
+- exec:
+ mgr.x:
+ - systemctl stop ceph-mgr.target
+ - sleep 5
+ - ceph -s
+- exec:
+ mon.a:
+ - ceph restful create-key admin
+ - ceph restful create-self-signed-cert
+ - ceph restful restart
+- workunit:
+ clients:
+ client.0:
+ - rest/test-restful.sh
diff --git a/qa/suites/ceph-deploy/% b/qa/suites/ceph-deploy/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/ceph-deploy/%
diff --git a/qa/suites/ceph-deploy/.qa b/qa/suites/ceph-deploy/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-deploy/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-deploy/cluster/.qa b/qa/suites/ceph-deploy/cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-deploy/cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-deploy/cluster/4node.yaml b/qa/suites/ceph-deploy/cluster/4node.yaml
new file mode 100644
index 00000000..bf4a7f98
--- /dev/null
+++ b/qa/suites/ceph-deploy/cluster/4node.yaml
@@ -0,0 +1,15 @@
+overrides:
+ ansible.cephlab:
+ vars:
+ quick_lvs_to_create: 4
+openstack:
+ - machine:
+ disk: 10
+ volumes:
+ count: 4
+ size: 20
+roles:
+- [mon.a, mgr.y, osd.0, osd.1]
+- [mon.b, osd.2, osd.3]
+- [mon.c, osd.4, osd.5]
+- [mgr.x, client.0]
diff --git a/qa/suites/ceph-deploy/config/.qa b/qa/suites/ceph-deploy/config/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-deploy/config/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-deploy/config/ceph_volume_bluestore.yaml b/qa/suites/ceph-deploy/config/ceph_volume_bluestore.yaml
new file mode 100644
index 00000000..e484e612
--- /dev/null
+++ b/qa/suites/ceph-deploy/config/ceph_volume_bluestore.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph-deploy:
+ use-ceph-volume: True
+ bluestore: True
+ conf:
+ osd:
+ bluestore fsck on mount: true
diff --git a/qa/suites/ceph-deploy/config/ceph_volume_bluestore_dmcrypt.yaml b/qa/suites/ceph-deploy/config/ceph_volume_bluestore_dmcrypt.yaml
new file mode 100644
index 00000000..d424b642
--- /dev/null
+++ b/qa/suites/ceph-deploy/config/ceph_volume_bluestore_dmcrypt.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph-deploy:
+ use-ceph-volume: True
+ bluestore: True
+ dmcrypt: True
+ conf:
+ osd:
+ bluestore fsck on mount: true
diff --git a/qa/suites/ceph-deploy/config/ceph_volume_dmcrypt_off.yaml b/qa/suites/ceph-deploy/config/ceph_volume_dmcrypt_off.yaml
new file mode 100644
index 00000000..09701441
--- /dev/null
+++ b/qa/suites/ceph-deploy/config/ceph_volume_dmcrypt_off.yaml
@@ -0,0 +1,3 @@
+overrides:
+ ceph-deploy:
+ use-ceph-volume: True
diff --git a/qa/suites/ceph-deploy/config/ceph_volume_filestore.yaml b/qa/suites/ceph-deploy/config/ceph_volume_filestore.yaml
new file mode 100644
index 00000000..d7185631
--- /dev/null
+++ b/qa/suites/ceph-deploy/config/ceph_volume_filestore.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph-deploy:
+ use-ceph-volume: True
+ filestore: True
diff --git a/qa/suites/ceph-deploy/distros/.qa b/qa/suites/ceph-deploy/distros/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-deploy/distros/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-deploy/distros/centos_latest.yaml b/qa/suites/ceph-deploy/distros/centos_latest.yaml
new file mode 120000
index 00000000..bd9854e7
--- /dev/null
+++ b/qa/suites/ceph-deploy/distros/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/ceph-deploy/distros/ubuntu_latest.yaml b/qa/suites/ceph-deploy/distros/ubuntu_latest.yaml
new file mode 120000
index 00000000..3a09f9ab
--- /dev/null
+++ b/qa/suites/ceph-deploy/distros/ubuntu_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/ubuntu_latest.yaml \ No newline at end of file
diff --git a/qa/suites/ceph-deploy/python_versions/.qa b/qa/suites/ceph-deploy/python_versions/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-deploy/python_versions/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-deploy/python_versions/python_2.yaml b/qa/suites/ceph-deploy/python_versions/python_2.yaml
new file mode 100644
index 00000000..51c865bf
--- /dev/null
+++ b/qa/suites/ceph-deploy/python_versions/python_2.yaml
@@ -0,0 +1,3 @@
+overrides:
+ ceph-deploy:
+ python_version: "2"
diff --git a/qa/suites/ceph-deploy/python_versions/python_3.yaml b/qa/suites/ceph-deploy/python_versions/python_3.yaml
new file mode 100644
index 00000000..22deecae
--- /dev/null
+++ b/qa/suites/ceph-deploy/python_versions/python_3.yaml
@@ -0,0 +1,3 @@
+overrides:
+ ceph-deploy:
+ python_version: "3"
diff --git a/qa/suites/ceph-deploy/tasks/.qa b/qa/suites/ceph-deploy/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/ceph-deploy/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/ceph-deploy/tasks/ceph-admin-commands.yaml b/qa/suites/ceph-deploy/tasks/ceph-admin-commands.yaml
new file mode 100644
index 00000000..b7dbfe1a
--- /dev/null
+++ b/qa/suites/ceph-deploy/tasks/ceph-admin-commands.yaml
@@ -0,0 +1,12 @@
+meta:
+- desc: "test basic ceph admin commands"
+tasks:
+- ssh_keys:
+- print: "**** done ssh_keys"
+- ceph-deploy:
+- print: "**** done ceph-deploy"
+- workunit:
+ clients:
+ client.0:
+ - ceph-tests/ceph-admin-commands.sh
+- print: "**** done ceph-tests/ceph-admin-commands.sh"
diff --git a/qa/suites/ceph-deploy/tasks/rbd_import_export.yaml b/qa/suites/ceph-deploy/tasks/rbd_import_export.yaml
new file mode 100644
index 00000000..1c09735a
--- /dev/null
+++ b/qa/suites/ceph-deploy/tasks/rbd_import_export.yaml
@@ -0,0 +1,9 @@
+meta:
+- desc: "Setup cluster using ceph-deploy, Run the rbd import/export tests"
+tasks:
+- ssh-keys:
+- ceph-deploy:
+- workunit:
+ clients:
+ client.0:
+ - rbd/import_export.sh
diff --git a/qa/suites/cephmetrics/% b/qa/suites/cephmetrics/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/cephmetrics/%
diff --git a/qa/suites/cephmetrics/.qa b/qa/suites/cephmetrics/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/cephmetrics/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/cephmetrics/0-clusters/.qa b/qa/suites/cephmetrics/0-clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/cephmetrics/0-clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/cephmetrics/0-clusters/3-node.yaml b/qa/suites/cephmetrics/0-clusters/3-node.yaml
new file mode 100644
index 00000000..3935e7cc
--- /dev/null
+++ b/qa/suites/cephmetrics/0-clusters/3-node.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: "4-node cluster"
+roles:
+- [mon.a, mds.a, osd.0, osd.1, osd.2]
+- [mon.b, mgr.x, osd.3, osd.4, osd.5]
+- [mon.c, mgr.y, osd.6, osd.7, osd.8, client.0]
+- [cephmetrics.0]
+openstack:
+- volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
diff --git a/qa/suites/cephmetrics/1-distros/.qa b/qa/suites/cephmetrics/1-distros/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/cephmetrics/1-distros/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/cephmetrics/1-distros/centos_latest.yaml b/qa/suites/cephmetrics/1-distros/centos_latest.yaml
new file mode 120000
index 00000000..bd9854e7
--- /dev/null
+++ b/qa/suites/cephmetrics/1-distros/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/cephmetrics/1-distros/ubuntu_latest.yaml b/qa/suites/cephmetrics/1-distros/ubuntu_latest.yaml
new file mode 120000
index 00000000..3a09f9ab
--- /dev/null
+++ b/qa/suites/cephmetrics/1-distros/ubuntu_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/ubuntu_latest.yaml \ No newline at end of file
diff --git a/qa/suites/cephmetrics/2-ceph/.qa b/qa/suites/cephmetrics/2-ceph/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/cephmetrics/2-ceph/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/cephmetrics/2-ceph/ceph_ansible.yaml b/qa/suites/cephmetrics/2-ceph/ceph_ansible.yaml
new file mode 100644
index 00000000..309f5060
--- /dev/null
+++ b/qa/suites/cephmetrics/2-ceph/ceph_ansible.yaml
@@ -0,0 +1,32 @@
+meta:
+- desc: "Build the ceph cluster using ceph-ansible"
+
+overrides:
+ ceph_ansible:
+ vars:
+ ceph_conf_overrides:
+ global:
+ osd default pool size: 2
+ mon pg warn min per osd: 2
+ osd pool default pg num: 64
+ osd pool default pgp num: 64
+ mon_max_pg_per_osd: 1024
+ ceph_test: true
+ ceph_stable_release: luminous
+ osd_scenario: collocated
+ journal_size: 1024
+ osd_auto_discovery: false
+ ceph_origin: repository
+ ceph_repository: dev
+ ceph_mgr_modules:
+ - status
+ - restful
+ cephfs_pools:
+ - name: "cephfs_data"
+ pg_num: "64"
+ - name: "cephfs_metadata"
+ pg_num: "64"
+tasks:
+- ssh-keys:
+- ceph_ansible:
+- install.ship_utilities:
diff --git a/qa/suites/cephmetrics/3-ceph-config/.qa b/qa/suites/cephmetrics/3-ceph-config/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/cephmetrics/3-ceph-config/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/cephmetrics/3-ceph-config/bluestore_with_dmcrypt.yaml b/qa/suites/cephmetrics/3-ceph-config/bluestore_with_dmcrypt.yaml
new file mode 100644
index 00000000..16db8ab2
--- /dev/null
+++ b/qa/suites/cephmetrics/3-ceph-config/bluestore_with_dmcrypt.yaml
@@ -0,0 +1,8 @@
+meta:
+- desc: "use bluestore + dmcrypt"
+
+overrides:
+ ceph_ansible:
+ vars:
+ osd_objectstore: bluestore
+ dmcrypt: True
diff --git a/qa/suites/cephmetrics/3-ceph-config/bluestore_without_dmcrypt.yaml b/qa/suites/cephmetrics/3-ceph-config/bluestore_without_dmcrypt.yaml
new file mode 100644
index 00000000..fc879fc8
--- /dev/null
+++ b/qa/suites/cephmetrics/3-ceph-config/bluestore_without_dmcrypt.yaml
@@ -0,0 +1,8 @@
+meta:
+- desc: "use bluestore without dmcrypt"
+
+overrides:
+ ceph_ansible:
+ vars:
+ osd_objectstore: bluestore
+ dmcrypt: False
diff --git a/qa/suites/cephmetrics/3-ceph-config/dmcrypt_off.yaml b/qa/suites/cephmetrics/3-ceph-config/dmcrypt_off.yaml
new file mode 100644
index 00000000..4bbd1c7c
--- /dev/null
+++ b/qa/suites/cephmetrics/3-ceph-config/dmcrypt_off.yaml
@@ -0,0 +1,7 @@
+meta:
+- desc: "without dmcrypt"
+
+overrides:
+ ceph_ansible:
+ vars:
+ dmcrypt: False
diff --git a/qa/suites/cephmetrics/3-ceph-config/dmcrypt_on.yaml b/qa/suites/cephmetrics/3-ceph-config/dmcrypt_on.yaml
new file mode 100644
index 00000000..519ad1d7
--- /dev/null
+++ b/qa/suites/cephmetrics/3-ceph-config/dmcrypt_on.yaml
@@ -0,0 +1,7 @@
+meta:
+- desc: "with dmcrypt"
+
+overrides:
+ ceph_ansible:
+ vars:
+ dmcrypt: True
diff --git a/qa/suites/cephmetrics/4-epel/.qa b/qa/suites/cephmetrics/4-epel/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/cephmetrics/4-epel/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/cephmetrics/4-epel/no_epel.yaml b/qa/suites/cephmetrics/4-epel/no_epel.yaml
new file mode 100644
index 00000000..1538fd7f
--- /dev/null
+++ b/qa/suites/cephmetrics/4-epel/no_epel.yaml
@@ -0,0 +1,7 @@
+meta:
+ - desc: "Without EPEL"
+overrides:
+ cephmetrics:
+ group_vars:
+ all:
+ use_epel: false
diff --git a/qa/suites/cephmetrics/4-epel/use_epel.yaml b/qa/suites/cephmetrics/4-epel/use_epel.yaml
new file mode 100644
index 00000000..d496a43e
--- /dev/null
+++ b/qa/suites/cephmetrics/4-epel/use_epel.yaml
@@ -0,0 +1,7 @@
+meta:
+ - desc: "Using EPEL"
+overrides:
+ cephmetrics:
+ group_vars:
+ all:
+ use_epel: true
diff --git a/qa/suites/cephmetrics/5-containers/.qa b/qa/suites/cephmetrics/5-containers/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/cephmetrics/5-containers/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/cephmetrics/5-containers/containerized.yaml b/qa/suites/cephmetrics/5-containers/containerized.yaml
new file mode 100644
index 00000000..686de08a
--- /dev/null
+++ b/qa/suites/cephmetrics/5-containers/containerized.yaml
@@ -0,0 +1,10 @@
+meta:
+ - desc: "Containerized prometheus and grafana"
+overrides:
+ cephmetrics:
+ group_vars:
+ all:
+ prometheus:
+ containerized: true
+ grafana:
+ containerized: true
diff --git a/qa/suites/cephmetrics/5-containers/no_containers.yaml b/qa/suites/cephmetrics/5-containers/no_containers.yaml
new file mode 100644
index 00000000..29c69093
--- /dev/null
+++ b/qa/suites/cephmetrics/5-containers/no_containers.yaml
@@ -0,0 +1,10 @@
+meta:
+ - desc: "Packaged prometheus and grafana"
+overrides:
+ cephmetrics:
+ group_vars:
+ all:
+ prometheus:
+ containerized: false
+ grafana:
+ containerized: false
diff --git a/qa/suites/cephmetrics/6-tasks/.qa b/qa/suites/cephmetrics/6-tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/cephmetrics/6-tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/cephmetrics/6-tasks/cephmetrics.yaml b/qa/suites/cephmetrics/6-tasks/cephmetrics.yaml
new file mode 100644
index 00000000..15f90394
--- /dev/null
+++ b/qa/suites/cephmetrics/6-tasks/cephmetrics.yaml
@@ -0,0 +1,4 @@
+meta:
+- desc: "Deploy cephmetrics and run integration tests"
+tasks:
+- cephmetrics:
diff --git a/qa/suites/dummy/% b/qa/suites/dummy/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/dummy/%
diff --git a/qa/suites/dummy/.qa b/qa/suites/dummy/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/dummy/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/dummy/all/.qa b/qa/suites/dummy/all/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/dummy/all/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/dummy/all/nop.yaml b/qa/suites/dummy/all/nop.yaml
new file mode 100644
index 00000000..0f00ffc8
--- /dev/null
+++ b/qa/suites/dummy/all/nop.yaml
@@ -0,0 +1,6 @@
+roles:
+ - [mon.a, mgr.x, mds.a, osd.0, osd.1, client.0]
+
+tasks:
+ - nop:
+
diff --git a/qa/suites/experimental/.qa b/qa/suites/experimental/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/experimental/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/experimental/multimds/% b/qa/suites/experimental/multimds/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/experimental/multimds/%
diff --git a/qa/suites/experimental/multimds/.qa b/qa/suites/experimental/multimds/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/experimental/multimds/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/experimental/multimds/clusters/.qa b/qa/suites/experimental/multimds/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/experimental/multimds/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/experimental/multimds/clusters/7-multimds.yaml b/qa/suites/experimental/multimds/clusters/7-multimds.yaml
new file mode 100644
index 00000000..7b2763f1
--- /dev/null
+++ b/qa/suites/experimental/multimds/clusters/7-multimds.yaml
@@ -0,0 +1,8 @@
+roles:
+- [mon.a, mgr.x, mds.a, mds.d]
+- [mon.b, mgr.y, mds.b, mds.e]
+- [mon.c, mgr.z, mds.c, mds.f]
+- [osd.0]
+- [osd.1]
+- [osd.2]
+- [client.0]
diff --git a/qa/suites/experimental/multimds/tasks/.qa b/qa/suites/experimental/multimds/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/experimental/multimds/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/experimental/multimds/tasks/fsstress_thrash_subtrees.yaml b/qa/suites/experimental/multimds/tasks/fsstress_thrash_subtrees.yaml
new file mode 100644
index 00000000..bee01a83
--- /dev/null
+++ b/qa/suites/experimental/multimds/tasks/fsstress_thrash_subtrees.yaml
@@ -0,0 +1,15 @@
+tasks:
+- install:
+- ceph:
+ conf:
+ mds:
+ mds thrash exports: 1
+ mds debug subtrees: 1
+ mds debug scatterstat: 1
+ mds verify scatter: 1
+- ceph-fuse:
+- workunit:
+ clients:
+ client.0:
+ - suites/fsstress.sh
+
diff --git a/qa/suites/fs/.qa b/qa/suites/fs/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/% b/qa/suites/fs/32bits/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/32bits/%
diff --git a/qa/suites/fs/32bits/.qa b/qa/suites/fs/32bits/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/32bits/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/begin.yaml b/qa/suites/fs/32bits/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/fs/32bits/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/clusters/.qa b/qa/suites/fs/32bits/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/32bits/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/clusters/fixed-2-ucephfs.yaml b/qa/suites/fs/32bits/clusters/fixed-2-ucephfs.yaml
new file mode 120000
index 00000000..b0c41a89
--- /dev/null
+++ b/qa/suites/fs/32bits/clusters/fixed-2-ucephfs.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/fixed-2-ucephfs.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/conf b/qa/suites/fs/32bits/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/fs/32bits/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/32bits/mount/.qa b/qa/suites/fs/32bits/mount/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/32bits/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/mount/fuse.yaml b/qa/suites/fs/32bits/mount/fuse.yaml
new file mode 120000
index 00000000..0e55da9f
--- /dev/null
+++ b/qa/suites/fs/32bits/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/objectstore-ec b/qa/suites/fs/32bits/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/fs/32bits/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/32bits/overrides/+ b/qa/suites/fs/32bits/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/32bits/overrides/+
diff --git a/qa/suites/fs/32bits/overrides/.qa b/qa/suites/fs/32bits/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/32bits/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/overrides/faked-ino.yaml b/qa/suites/fs/32bits/overrides/faked-ino.yaml
new file mode 100644
index 00000000..102df684
--- /dev/null
+++ b/qa/suites/fs/32bits/overrides/faked-ino.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ client use faked inos: true
diff --git a/qa/suites/fs/32bits/overrides/frag_enable.yaml b/qa/suites/fs/32bits/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/32bits/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/overrides/whitelist_health.yaml b/qa/suites/fs/32bits/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/32bits/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/32bits/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/32bits/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/supported-random-distros$ b/qa/suites/fs/32bits/supported-random-distros$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/fs/32bits/supported-random-distros$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/tasks/.qa b/qa/suites/fs/32bits/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/32bits/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/tasks/cfuse_workunit_suites_fsstress.yaml b/qa/suites/fs/32bits/tasks/cfuse_workunit_suites_fsstress.yaml
new file mode 120000
index 00000000..c2e859ff
--- /dev/null
+++ b/qa/suites/fs/32bits/tasks/cfuse_workunit_suites_fsstress.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_fsstress.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/tasks/cfuse_workunit_suites_pjd.yaml b/qa/suites/fs/32bits/tasks/cfuse_workunit_suites_pjd.yaml
new file mode 100644
index 00000000..37e315f7
--- /dev/null
+++ b/qa/suites/fs/32bits/tasks/cfuse_workunit_suites_pjd.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse set user groups: true
+ fuse default permissions: false
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/fs/basic_functional/% b/qa/suites/fs/basic_functional/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/basic_functional/%
diff --git a/qa/suites/fs/basic_functional/.qa b/qa/suites/fs/basic_functional/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_functional/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/begin.yaml b/qa/suites/fs/basic_functional/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/fs/basic_functional/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/clusters/.qa b/qa/suites/fs/basic_functional/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_functional/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/clusters/1-mds-4-client-coloc.yaml b/qa/suites/fs/basic_functional/clusters/1-mds-4-client-coloc.yaml
new file mode 120000
index 00000000..e5444ae2
--- /dev/null
+++ b/qa/suites/fs/basic_functional/clusters/1-mds-4-client-coloc.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-4-client-coloc.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/conf b/qa/suites/fs/basic_functional/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/fs/basic_functional/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/mount/.qa b/qa/suites/fs/basic_functional/mount/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_functional/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/mount/fuse.yaml b/qa/suites/fs/basic_functional/mount/fuse.yaml
new file mode 120000
index 00000000..0e55da9f
--- /dev/null
+++ b/qa/suites/fs/basic_functional/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/objectstore/.qa b/qa/suites/fs/basic_functional/objectstore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_functional/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/objectstore/bluestore-bitmap.yaml b/qa/suites/fs/basic_functional/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/fs/basic_functional/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/objectstore/bluestore-ec-root.yaml b/qa/suites/fs/basic_functional/objectstore/bluestore-ec-root.yaml
new file mode 120000
index 00000000..4edebd68
--- /dev/null
+++ b/qa/suites/fs/basic_functional/objectstore/bluestore-ec-root.yaml
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec/bluestore-ec-root.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/overrides/+ b/qa/suites/fs/basic_functional/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/basic_functional/overrides/+
diff --git a/qa/suites/fs/basic_functional/overrides/.qa b/qa/suites/fs/basic_functional/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_functional/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/overrides/frag_enable.yaml b/qa/suites/fs/basic_functional/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/basic_functional/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/overrides/no_client_pidfile.yaml b/qa/suites/fs/basic_functional/overrides/no_client_pidfile.yaml
new file mode 120000
index 00000000..8888f332
--- /dev/null
+++ b/qa/suites/fs/basic_functional/overrides/no_client_pidfile.yaml
@@ -0,0 +1 @@
+.qa/overrides/no_client_pidfile.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/overrides/whitelist_health.yaml b/qa/suites/fs/basic_functional/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/basic_functional/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/basic_functional/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/basic_functional/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/supported-random-distros$ b/qa/suites/fs/basic_functional/supported-random-distros$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/fs/basic_functional/supported-random-distros$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/tasks/.qa b/qa/suites/fs/basic_functional/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/tasks/admin.yaml b/qa/suites/fs/basic_functional/tasks/admin.yaml
new file mode 100644
index 00000000..ef40ef93
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/admin.yaml
@@ -0,0 +1,11 @@
+
+overrides:
+ ceph:
+ conf:
+ global:
+ lockdep: true
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_admin
diff --git a/qa/suites/fs/basic_functional/tasks/alternate-pool.yaml b/qa/suites/fs/basic_functional/tasks/alternate-pool.yaml
new file mode 100644
index 00000000..94d5cc6f
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/alternate-pool.yaml
@@ -0,0 +1,20 @@
+
+overrides:
+ ceph:
+ log-whitelist:
+ - bad backtrace
+ - object missing on disk
+ - error reading table object
+ - error reading sessionmap
+ - unmatched fragstat
+ - unmatched rstat
+ - was unreadable, recreating it now
+ - Scrub error on inode
+ - Metadata damage detected
+ - MDS_FAILED
+ - MDS_DAMAGE
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_recovery_pool
diff --git a/qa/suites/fs/basic_functional/tasks/asok_dump_tree.yaml b/qa/suites/fs/basic_functional/tasks/asok_dump_tree.yaml
new file mode 100644
index 00000000..7fa56147
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/asok_dump_tree.yaml
@@ -0,0 +1,4 @@
+tasks:
+- cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_dump_tree
diff --git a/qa/suites/fs/basic_functional/tasks/auto-repair.yaml b/qa/suites/fs/basic_functional/tasks/auto-repair.yaml
new file mode 100644
index 00000000..90d0e7bc
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/auto-repair.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - force file system read-only
+ - bad backtrace
+ - MDS in read-only mode
+ - \(MDS_READ_ONLY\)
+
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_auto_repair
diff --git a/qa/suites/fs/basic_functional/tasks/backtrace.yaml b/qa/suites/fs/basic_functional/tasks/backtrace.yaml
new file mode 100644
index 00000000..d740a5f6
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/backtrace.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_backtrace
diff --git a/qa/suites/fs/basic_functional/tasks/cap-flush.yaml b/qa/suites/fs/basic_functional/tasks/cap-flush.yaml
new file mode 100644
index 00000000..f063654a
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/cap-flush.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - Replacing daemon mds.a
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_cap_flush
diff --git a/qa/suites/fs/basic_functional/tasks/cephfs-shell.yaml b/qa/suites/fs/basic_functional/tasks/cephfs-shell.yaml
new file mode 100644
index 00000000..93c1eb54
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/cephfs-shell.yaml
@@ -0,0 +1,8 @@
+# Right now, cephfs-shell is only available as a package on Ubuntu
+# This overrides the random distribution that's chosen in the other yaml fragments.
+os_type: ubuntu
+os_version: "18.04"
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_cephfs_shell
diff --git a/qa/suites/fs/basic_functional/tasks/cephfs_scrub_tests.yaml b/qa/suites/fs/basic_functional/tasks/cephfs_scrub_tests.yaml
new file mode 100644
index 00000000..a8661214
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/cephfs_scrub_tests.yaml
@@ -0,0 +1,19 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - Replacing daemon mds
+ - Scrub error on inode
+ - Behind on trimming
+ - Metadata damage detected
+ - bad backtrace on inode
+ - overall HEALTH_
+ - \(MDS_TRIM\)
+ conf:
+ mds:
+ mds log max segments: 1
+ mds cache max size: 1000
+tasks:
+- cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_scrub_checks
+ - tasks.cephfs.test_scrub
diff --git a/qa/suites/fs/basic_functional/tasks/cfuse_workunit_quota.yaml b/qa/suites/fs/basic_functional/tasks/cfuse_workunit_quota.yaml
new file mode 100644
index 00000000..7ac8714c
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/cfuse_workunit_quota.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/quota
diff --git a/qa/suites/fs/basic_functional/tasks/client-limits.yaml b/qa/suites/fs/basic_functional/tasks/client-limits.yaml
new file mode 100644
index 00000000..635d0b6d
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/client-limits.yaml
@@ -0,0 +1,19 @@
+
+overrides:
+ ceph:
+ log-whitelist:
+ - responding to mclientcaps\(revoke\)
+ - not advance its oldest_client_tid
+ - failing to advance its oldest client/flush tid
+ - Too many inodes in cache
+ - failing to respond to cache pressure
+ - slow requests are blocked
+ - failing to respond to capability release
+ - MDS cache is too large
+ - \(MDS_CLIENT_OLDEST_TID\)
+ - \(MDS_CACHE_OVERSIZED\)
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_client_limits
diff --git a/qa/suites/fs/basic_functional/tasks/client-readahad.yaml b/qa/suites/fs/basic_functional/tasks/client-readahad.yaml
new file mode 100644
index 00000000..1d178e52
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/client-readahad.yaml
@@ -0,0 +1,4 @@
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_readahead
diff --git a/qa/suites/fs/basic_functional/tasks/client-recovery.yaml b/qa/suites/fs/basic_functional/tasks/client-recovery.yaml
new file mode 100644
index 00000000..d1cef802
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/client-recovery.yaml
@@ -0,0 +1,17 @@
+
+# The task interferes with the network, so we need
+# to permit OSDs to complain about that.
+overrides:
+ ceph:
+ log-whitelist:
+ - evicting unresponsive client
+ - but it is still running
+ - slow request
+ - MDS_CLIENT_LATE_RELEASE
+ - t responding to mclientcaps
+
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_client_recovery
diff --git a/qa/suites/fs/basic_functional/tasks/damage.yaml b/qa/suites/fs/basic_functional/tasks/damage.yaml
new file mode 100644
index 00000000..9ae738f0
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/damage.yaml
@@ -0,0 +1,27 @@
+
+overrides:
+ ceph:
+ log-whitelist:
+ - bad backtrace
+ - object missing on disk
+ - error reading table object
+ - error reading sessionmap
+ - Error loading MDS rank
+ - missing journal object
+ - Error recovering journal
+ - error decoding table object
+ - failed to read JournalPointer
+ - Corrupt directory entry
+ - Corrupt fnode header
+ - corrupt sessionmap header
+ - Corrupt dentry
+ - Scrub error on inode
+ - Metadata damage detected
+ - MDS_READ_ONLY
+ - force file system read-only
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_damage
+
diff --git a/qa/suites/fs/basic_functional/tasks/data-scan.yaml b/qa/suites/fs/basic_functional/tasks/data-scan.yaml
new file mode 100644
index 00000000..0a2eb0d4
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/data-scan.yaml
@@ -0,0 +1,20 @@
+
+overrides:
+ ceph:
+ log-whitelist:
+ - bad backtrace
+ - object missing on disk
+ - error reading table object
+ - error reading sessionmap
+ - unmatched fragstat
+ - unmatched rstat
+ - was unreadable, recreating it now
+ - Scrub error on inode
+ - Metadata damage detected
+ - inconsistent rstat on inode
+ - Error recovering journal
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_data_scan
diff --git a/qa/suites/fs/basic_functional/tasks/forward-scrub.yaml b/qa/suites/fs/basic_functional/tasks/forward-scrub.yaml
new file mode 100644
index 00000000..b92cf105
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/forward-scrub.yaml
@@ -0,0 +1,14 @@
+
+overrides:
+ ceph:
+ log-whitelist:
+ - inode wrongly marked free
+ - bad backtrace on inode
+ - inode table repaired for inode
+ - Scrub error on inode
+ - Metadata damage detected
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_forward_scrub
diff --git a/qa/suites/fs/basic_functional/tasks/fragment.yaml b/qa/suites/fs/basic_functional/tasks/fragment.yaml
new file mode 100644
index 00000000..482caad8
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/fragment.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_fragment
diff --git a/qa/suites/fs/basic_functional/tasks/journal-repair.yaml b/qa/suites/fs/basic_functional/tasks/journal-repair.yaml
new file mode 100644
index 00000000..66f819d0
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/journal-repair.yaml
@@ -0,0 +1,14 @@
+
+overrides:
+ ceph:
+ log-whitelist:
+ - bad backtrace on directory inode
+ - error reading table object
+ - Metadata damage detected
+ - slow requests are blocked
+ - Behind on trimming
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_journal_repair
diff --git a/qa/suites/fs/basic_functional/tasks/libcephfs_python.yaml b/qa/suites/fs/basic_functional/tasks/libcephfs_python.yaml
new file mode 100644
index 00000000..e5cbb14b
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/libcephfs_python.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph-fuse:
+ disabled: true
+ kclient:
+ disabled: true
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - fs/test_python.sh
diff --git a/qa/suites/fs/basic_functional/tasks/mds-flush.yaml b/qa/suites/fs/basic_functional/tasks/mds-flush.yaml
new file mode 100644
index 00000000..d59a8ad5
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/mds-flush.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_flush
diff --git a/qa/suites/fs/basic_functional/tasks/mds-full.yaml b/qa/suites/fs/basic_functional/tasks/mds-full.yaml
new file mode 100644
index 00000000..7e57dc6b
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/mds-full.yaml
@@ -0,0 +1,37 @@
+
+overrides:
+ ceph:
+ cephfs_ec_profile:
+ - disabled
+ log-whitelist:
+ - OSD full dropping all updates
+ - OSD near full
+ - pausewr flag
+ - failsafe engaged, dropping updates
+ - failsafe disengaged, no longer dropping
+ - is full \(reached quota
+ - POOL_FULL
+ - POOL_BACKFILLFULL
+ conf:
+ mon:
+ mon osd nearfull ratio: 0.6
+ mon osd backfillfull ratio: 0.6
+ mon osd full ratio: 0.7
+ osd:
+ osd mon report interval: 5
+ osd objectstore: memstore
+ osd failsafe full ratio: 1.0
+ memstore device bytes: 200000000
+ client.0:
+ debug client: 20
+ debug objecter: 20
+ debug objectcacher: 20
+ client.1:
+ debug client: 20
+ debug objecter: 20
+ debug objectcacher: 20
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_full
diff --git a/qa/suites/fs/basic_functional/tasks/mds_creation_retry.yaml b/qa/suites/fs/basic_functional/tasks/mds_creation_retry.yaml
new file mode 100644
index 00000000..fd23aa8b
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/mds_creation_retry.yaml
@@ -0,0 +1,6 @@
+tasks:
+-mds_creation_failure:
+- workunit:
+ clients:
+ all: [fs/misc/trivial_sync.sh]
+
diff --git a/qa/suites/fs/basic_functional/tasks/openfiletable.yaml b/qa/suites/fs/basic_functional/tasks/openfiletable.yaml
new file mode 100644
index 00000000..ad90e8bc
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/openfiletable.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_openfiletable
diff --git a/qa/suites/fs/basic_functional/tasks/pool-perm.yaml b/qa/suites/fs/basic_functional/tasks/pool-perm.yaml
new file mode 100644
index 00000000..f220626d
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/pool-perm.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_pool_perm
diff --git a/qa/suites/fs/basic_functional/tasks/quota.yaml b/qa/suites/fs/basic_functional/tasks/quota.yaml
new file mode 100644
index 00000000..89b10ce2
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/quota.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_quota
diff --git a/qa/suites/fs/basic_functional/tasks/sessionmap/+ b/qa/suites/fs/basic_functional/tasks/sessionmap/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/sessionmap/+
diff --git a/qa/suites/fs/basic_functional/tasks/sessionmap/.qa b/qa/suites/fs/basic_functional/tasks/sessionmap/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/sessionmap/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/tasks/sessionmap/sessionmap.yaml b/qa/suites/fs/basic_functional/tasks/sessionmap/sessionmap.yaml
new file mode 100644
index 00000000..1d72301b
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/sessionmap/sessionmap.yaml
@@ -0,0 +1,10 @@
+
+overrides:
+ ceph:
+ log-whitelist:
+ - client session with non-allowable root
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_sessionmap
diff --git a/qa/suites/fs/basic_functional/tasks/strays.yaml b/qa/suites/fs/basic_functional/tasks/strays.yaml
new file mode 100644
index 00000000..2809fc14
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/strays.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_strays
diff --git a/qa/suites/fs/basic_functional/tasks/test_journal_migration.yaml b/qa/suites/fs/basic_functional/tasks/test_journal_migration.yaml
new file mode 100644
index 00000000..183ef388
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/test_journal_migration.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+- cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_journal_migration
diff --git a/qa/suites/fs/basic_functional/tasks/volume-client/% b/qa/suites/fs/basic_functional/tasks/volume-client/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/volume-client/%
diff --git a/qa/suites/fs/basic_functional/tasks/volume-client/.qa b/qa/suites/fs/basic_functional/tasks/volume-client/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/volume-client/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/tasks/volume-client/task/.qa b/qa/suites/fs/basic_functional/tasks/volume-client/task/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/volume-client/task/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/tasks/volume-client/task/test/+ b/qa/suites/fs/basic_functional/tasks/volume-client/task/test/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/volume-client/task/test/+
diff --git a/qa/suites/fs/basic_functional/tasks/volume-client/task/test/.qa b/qa/suites/fs/basic_functional/tasks/volume-client/task/test/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/volume-client/task/test/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/basic_functional/tasks/volume-client/task/test/test.yaml b/qa/suites/fs/basic_functional/tasks/volume-client/task/test/test.yaml
new file mode 100644
index 00000000..2ad97a00
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/volume-client/task/test/test.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - MON_DOWN
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_volume_client
diff --git a/qa/suites/fs/basic_functional/tasks/volumes.yaml b/qa/suites/fs/basic_functional/tasks/volumes.yaml
new file mode 100644
index 00000000..1315980e
--- /dev/null
+++ b/qa/suites/fs/basic_functional/tasks/volumes.yaml
@@ -0,0 +1,20 @@
+overrides:
+ ceph:
+ conf:
+ mgr:
+ debug client: 10
+ log-whitelist:
+ - OSD full dropping all updates
+ - OSD near full
+ - pausewr flag
+ - failsafe engaged, dropping updates
+ - failsafe disengaged, no longer dropping
+ - is full \(reached quota
+ - POOL_FULL
+ - POOL_BACKFILLFULL
+
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_volumes
diff --git a/qa/suites/fs/basic_workload/% b/qa/suites/fs/basic_workload/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/basic_workload/%
diff --git a/qa/suites/fs/basic_workload/.qa b/qa/suites/fs/basic_workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/begin.yaml b/qa/suites/fs/basic_workload/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/fs/basic_workload/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/clusters/.qa b/qa/suites/fs/basic_workload/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_workload/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/clusters/fixed-2-ucephfs.yaml b/qa/suites/fs/basic_workload/clusters/fixed-2-ucephfs.yaml
new file mode 120000
index 00000000..b0c41a89
--- /dev/null
+++ b/qa/suites/fs/basic_workload/clusters/fixed-2-ucephfs.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/fixed-2-ucephfs.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/conf b/qa/suites/fs/basic_workload/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/fs/basic_workload/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/inline/.qa b/qa/suites/fs/basic_workload/inline/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_workload/inline/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/inline/no.yaml b/qa/suites/fs/basic_workload/inline/no.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/basic_workload/inline/no.yaml
diff --git a/qa/suites/fs/basic_workload/inline/yes.yaml b/qa/suites/fs/basic_workload/inline/yes.yaml
new file mode 100644
index 00000000..da8677a5
--- /dev/null
+++ b/qa/suites/fs/basic_workload/inline/yes.yaml
@@ -0,0 +1,4 @@
+tasks:
+- exec:
+ client.0:
+ - sudo ceph fs set cephfs inline_data true --yes-i-really-mean-it
diff --git a/qa/suites/fs/basic_workload/mount/.qa b/qa/suites/fs/basic_workload/mount/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_workload/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/mount/fuse.yaml b/qa/suites/fs/basic_workload/mount/fuse.yaml
new file mode 120000
index 00000000..0e55da9f
--- /dev/null
+++ b/qa/suites/fs/basic_workload/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/objectstore-ec b/qa/suites/fs/basic_workload/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/fs/basic_workload/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/omap_limit/.qa b/qa/suites/fs/basic_workload/omap_limit/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_workload/omap_limit/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/omap_limit/10.yaml b/qa/suites/fs/basic_workload/omap_limit/10.yaml
new file mode 100644
index 00000000..0cd2c6f8
--- /dev/null
+++ b/qa/suites/fs/basic_workload/omap_limit/10.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd_max_omap_entries_per_request: 10 \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/omap_limit/10000.yaml b/qa/suites/fs/basic_workload/omap_limit/10000.yaml
new file mode 100644
index 00000000..0c7e4cf9
--- /dev/null
+++ b/qa/suites/fs/basic_workload/omap_limit/10000.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd_max_omap_entries_per_request: 10000 \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/overrides/+ b/qa/suites/fs/basic_workload/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/basic_workload/overrides/+
diff --git a/qa/suites/fs/basic_workload/overrides/.qa b/qa/suites/fs/basic_workload/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_workload/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/overrides/frag_enable.yaml b/qa/suites/fs/basic_workload/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/basic_workload/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/overrides/session_timeout.yaml b/qa/suites/fs/basic_workload/overrides/session_timeout.yaml
new file mode 120000
index 00000000..fce0318c
--- /dev/null
+++ b/qa/suites/fs/basic_workload/overrides/session_timeout.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/session_timeout.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/overrides/whitelist_health.yaml b/qa/suites/fs/basic_workload/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/basic_workload/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/basic_workload/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/basic_workload/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/supported-random-distros$ b/qa/suites/fs/basic_workload/supported-random-distros$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/fs/basic_workload/supported-random-distros$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/tasks/.qa b/qa/suites/fs/basic_workload/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_kernel_untar_build.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_kernel_untar_build.yaml
new file mode 100644
index 00000000..1e71bb40
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_kernel_untar_build.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse_default_permissions: 0
+tasks:
+- check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+- workunit:
+ clients:
+ all:
+ - kernel_untar_build.sh
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_misc.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_misc.yaml
new file mode 100644
index 00000000..d6c8140a
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_misc.yaml
@@ -0,0 +1,10 @@
+tasks:
+- check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+- workunit:
+ clients:
+ all:
+ - fs/misc
+
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_misc_test_o_trunc.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_misc_test_o_trunc.yaml
new file mode 100644
index 00000000..c9de5c38
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_misc_test_o_trunc.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/test_o_trunc.sh
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_norstats.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_norstats.yaml
new file mode 100644
index 00000000..ea018c99
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_norstats.yaml
@@ -0,0 +1,15 @@
+tasks:
+- check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+- workunit:
+ clients:
+ all:
+ - fs/norstats
+
+overrides:
+ ceph:
+ conf:
+ client:
+ client dirsize rbytes: false
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_blogbench.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_blogbench.yaml
new file mode 120000
index 00000000..8702f4f3
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_blogbench.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_blogbench.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_dbench.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_dbench.yaml
new file mode 120000
index 00000000..b0f876c3
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_dbench.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_dbench.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_ffsb.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_ffsb.yaml
new file mode 120000
index 00000000..01e889b2
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_ffsb.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_ffsb.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_fsstress.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_fsstress.yaml
new file mode 120000
index 00000000..c2e859ff
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_fsstress.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_fsstress.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_fsx.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_fsx.yaml
new file mode 100644
index 00000000..b16cfb17
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_fsx.yaml
@@ -0,0 +1,9 @@
+tasks:
+- check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+- workunit:
+ clients:
+ all:
+ - suites/fsx.sh
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_fsync.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_fsync.yaml
new file mode 100644
index 00000000..7efa1adb
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_fsync.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsync-tester.sh
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_iogen.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_iogen.yaml
new file mode 100644
index 00000000..8d4c2710
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_iogen.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/iogen.sh
+
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_iozone.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_iozone.yaml
new file mode 100644
index 00000000..9270f3c5
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_iozone.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/iozone.sh
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_pjd.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_pjd.yaml
new file mode 100644
index 00000000..37e315f7
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_pjd.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse set user groups: true
+ fuse default permissions: false
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_truncate_delay.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_truncate_delay.yaml
new file mode 100644
index 00000000..b47b5656
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_suites_truncate_delay.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ ms_inject_delay_probability: 1
+ ms_inject_delay_type: osd
+ ms_inject_delay_max: 5
+ client_oc_max_dirty_age: 1
+tasks:
+- exec:
+ client.0:
+ - cd $TESTDIR/mnt.* && dd if=/dev/zero of=./foo count=100
+ - sleep 2
+ - cd $TESTDIR/mnt.* && truncate --size 0 ./foo
diff --git a/qa/suites/fs/basic_workload/tasks/cfuse_workunit_trivial_sync.yaml b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_trivial_sync.yaml
new file mode 120000
index 00000000..a1df0327
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/cfuse_workunit_trivial_sync.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_trivial_sync.yaml \ No newline at end of file
diff --git a/qa/suites/fs/basic_workload/tasks/libcephfs_interface_tests.yaml b/qa/suites/fs/basic_workload/tasks/libcephfs_interface_tests.yaml
new file mode 120000
index 00000000..84a88b59
--- /dev/null
+++ b/qa/suites/fs/basic_workload/tasks/libcephfs_interface_tests.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/libcephfs_interface_tests.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/.qa b/qa/suites/fs/bugs/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/bugs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/% b/qa/suites/fs/bugs/client_trim_caps/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/%
diff --git a/qa/suites/fs/bugs/client_trim_caps/.qa b/qa/suites/fs/bugs/client_trim_caps/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/begin.yaml b/qa/suites/fs/bugs/client_trim_caps/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/clusters/.qa b/qa/suites/fs/bugs/client_trim_caps/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/clusters/small-cluster.yaml b/qa/suites/fs/bugs/client_trim_caps/clusters/small-cluster.yaml
new file mode 100644
index 00000000..5cd97a3a
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/clusters/small-cluster.yaml
@@ -0,0 +1,11 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, mds.a, mds.b, client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+- machine:
+ disk: 100 # GB
+log-rotate:
+ ceph-mds: 10G
+ ceph-osd: 10G
diff --git a/qa/suites/fs/bugs/client_trim_caps/conf b/qa/suites/fs/bugs/client_trim_caps/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/objectstore/.qa b/qa/suites/fs/bugs/client_trim_caps/objectstore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/objectstore/bluestore-bitmap.yaml b/qa/suites/fs/bugs/client_trim_caps/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/overrides/+ b/qa/suites/fs/bugs/client_trim_caps/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/overrides/+
diff --git a/qa/suites/fs/bugs/client_trim_caps/overrides/.qa b/qa/suites/fs/bugs/client_trim_caps/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/overrides/frag_enable.yaml b/qa/suites/fs/bugs/client_trim_caps/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/overrides/no_client_pidfile.yaml b/qa/suites/fs/bugs/client_trim_caps/overrides/no_client_pidfile.yaml
new file mode 120000
index 00000000..8888f332
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/overrides/no_client_pidfile.yaml
@@ -0,0 +1 @@
+.qa/overrides/no_client_pidfile.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/overrides/whitelist_health.yaml b/qa/suites/fs/bugs/client_trim_caps/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/bugs/client_trim_caps/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/tasks/.qa b/qa/suites/fs/bugs/client_trim_caps/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/tasks/trim-i22073.yaml b/qa/suites/fs/bugs/client_trim_caps/tasks/trim-i22073.yaml
new file mode 100644
index 00000000..a86e918e
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/tasks/trim-i22073.yaml
@@ -0,0 +1,20 @@
+# Note this test is unlikely to exercise the code as expected in the future:
+# "It's too tricky to arrange inodes in session->caps. we don't know if it
+# still works in the future." -Zheng
+
+overrides:
+ ceph:
+ log-whitelist:
+ - MDS cache is too large
+ - \(MDS_CACHE_OVERSIZED\)
+tasks:
+- exec:
+ mon.a:
+ - "ceph tell mds.* config set mds_min_caps_per_client 1"
+- background_exec:
+ mon.a:
+ - "sleep 30 && ceph tell mds.* config set mds_cache_memory_limit 1"
+- exec:
+ client.0:
+ - ceph_test_trim_caps
+ - ceph_test_ino_release_cb
diff --git a/qa/suites/fs/multiclient/% b/qa/suites/fs/multiclient/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/multiclient/%
diff --git a/qa/suites/fs/multiclient/.qa b/qa/suites/fs/multiclient/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/multiclient/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/begin.yaml b/qa/suites/fs/multiclient/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/fs/multiclient/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/clusters/.qa b/qa/suites/fs/multiclient/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/multiclient/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/clusters/1-mds-2-client.yaml b/qa/suites/fs/multiclient/clusters/1-mds-2-client.yaml
new file mode 120000
index 00000000..9f4f161a
--- /dev/null
+++ b/qa/suites/fs/multiclient/clusters/1-mds-2-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-2-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/clusters/1-mds-3-client.yaml b/qa/suites/fs/multiclient/clusters/1-mds-3-client.yaml
new file mode 120000
index 00000000..6b25e07c
--- /dev/null
+++ b/qa/suites/fs/multiclient/clusters/1-mds-3-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-3-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/conf b/qa/suites/fs/multiclient/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/fs/multiclient/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/distros/.qa b/qa/suites/fs/multiclient/distros/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/multiclient/distros/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/distros/ubuntu_latest.yaml b/qa/suites/fs/multiclient/distros/ubuntu_latest.yaml
new file mode 120000
index 00000000..3a09f9ab
--- /dev/null
+++ b/qa/suites/fs/multiclient/distros/ubuntu_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/ubuntu_latest.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/mount/.qa b/qa/suites/fs/multiclient/mount/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/multiclient/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/mount/fuse.yaml b/qa/suites/fs/multiclient/mount/fuse.yaml
new file mode 120000
index 00000000..0e55da9f
--- /dev/null
+++ b/qa/suites/fs/multiclient/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/mount/kclient.yaml.disabled b/qa/suites/fs/multiclient/mount/kclient.yaml.disabled
new file mode 100644
index 00000000..f00f16ae
--- /dev/null
+++ b/qa/suites/fs/multiclient/mount/kclient.yaml.disabled
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+tasks:
+- kclient:
diff --git a/qa/suites/fs/multiclient/objectstore-ec b/qa/suites/fs/multiclient/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/fs/multiclient/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/overrides/+ b/qa/suites/fs/multiclient/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/multiclient/overrides/+
diff --git a/qa/suites/fs/multiclient/overrides/.qa b/qa/suites/fs/multiclient/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/multiclient/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/overrides/frag_enable.yaml b/qa/suites/fs/multiclient/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/multiclient/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/overrides/whitelist_health.yaml b/qa/suites/fs/multiclient/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/multiclient/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/multiclient/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/multiclient/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/tasks/.qa b/qa/suites/fs/multiclient/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/multiclient/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/tasks/cephfs_misc_tests.yaml b/qa/suites/fs/multiclient/tasks/cephfs_misc_tests.yaml
new file mode 100644
index 00000000..564989d6
--- /dev/null
+++ b/qa/suites/fs/multiclient/tasks/cephfs_misc_tests.yaml
@@ -0,0 +1,13 @@
+tasks:
+- cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_misc
+
+overrides:
+ ceph:
+ log-whitelist:
+ - evicting unresponsive client
+ - POOL_APP_NOT_ENABLED
+ - has not responded to cap revoke by MDS for over
+ - MDS_CLIENT_LATE_RELEASE
+ - responding to mclientcaps
diff --git a/qa/suites/fs/multiclient/tasks/fsx-mpi.yaml.disabled b/qa/suites/fs/multiclient/tasks/fsx-mpi.yaml.disabled
new file mode 100644
index 00000000..fc099694
--- /dev/null
+++ b/qa/suites/fs/multiclient/tasks/fsx-mpi.yaml.disabled
@@ -0,0 +1,17 @@
+# make sure we get the same MPI version on all hosts
+tasks:
+- pexec:
+ clients:
+ - cd $TESTDIR
+ - wget http://download.ceph.com/qa/fsx-mpi.c
+ - mpicc fsx-mpi.c -o fsx-mpi
+ - rm fsx-mpi.c
+ - ln -s $TESTDIR/mnt.* $TESTDIR/gmnt
+- ssh_keys:
+- mpi:
+ exec: sudo $TESTDIR/fsx-mpi -o 1MB -N 50000 -p 10000 -l 1048576 $TESTDIR/gmnt/test
+ workdir: $TESTDIR/gmnt
+- pexec:
+ all:
+ - rm $TESTDIR/gmnt
+ - rm $TESTDIR/fsx-mpi
diff --git a/qa/suites/fs/multiclient/tasks/ior-shared-file.yaml b/qa/suites/fs/multiclient/tasks/ior-shared-file.yaml
new file mode 100644
index 00000000..d401cff4
--- /dev/null
+++ b/qa/suites/fs/multiclient/tasks/ior-shared-file.yaml
@@ -0,0 +1,23 @@
+# make sure we get the same MPI version on all hosts
+tasks:
+- pexec:
+ clients:
+ - cd $TESTDIR
+ - wget http://download.ceph.com/qa/ior.tbz2
+ - tar xvfj ior.tbz2
+ - cd ior
+ - ./configure
+ - make
+ - make install DESTDIR=$TESTDIR/binary/
+ - cd $TESTDIR/
+ - rm ior.tbz2
+ - rm -r ior
+ - ln -s $TESTDIR/mnt.* $TESTDIR/gmnt
+- ssh_keys:
+- mpi:
+ exec: $TESTDIR/binary/usr/local/bin/ior -e -w -r -W -b 10m -a POSIX -o $TESTDIR/gmnt/ior.testfile
+- pexec:
+ all:
+ - rm -f $TESTDIR/gmnt/ior.testfile
+ - rm -f $TESTDIR/gmnt
+ - rm -rf $TESTDIR/binary
diff --git a/qa/suites/fs/multiclient/tasks/mdtest.yaml b/qa/suites/fs/multiclient/tasks/mdtest.yaml
new file mode 100644
index 00000000..ba8ecde4
--- /dev/null
+++ b/qa/suites/fs/multiclient/tasks/mdtest.yaml
@@ -0,0 +1,20 @@
+# make sure we get the same MPI version on all hosts
+tasks:
+- pexec:
+ clients:
+ - cd $TESTDIR
+ - wget http://download.ceph.com/qa/mdtest-1.9.3.tgz
+ - mkdir mdtest-1.9.3
+ - cd mdtest-1.9.3
+ - tar xvfz $TESTDIR/mdtest-1.9.3.tgz
+ - rm $TESTDIR/mdtest-1.9.3.tgz
+ - MPI_CC=mpicc make
+ - ln -s $TESTDIR/mnt.* $TESTDIR/gmnt
+- ssh_keys:
+- mpi:
+ exec: $TESTDIR/mdtest-1.9.3/mdtest -d $TESTDIR/gmnt -I 20 -z 5 -b 2 -R
+- pexec:
+ all:
+ - rm -f $TESTDIR/gmnt
+ - rm -rf $TESTDIR/mdtest-1.9.3
+ - rm -rf $TESTDIR/._mdtest-1.9.3
diff --git a/qa/suites/fs/multifs/% b/qa/suites/fs/multifs/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/multifs/%
diff --git a/qa/suites/fs/multifs/.qa b/qa/suites/fs/multifs/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/multifs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multifs/begin.yaml b/qa/suites/fs/multifs/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/fs/multifs/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multifs/clusters/.qa b/qa/suites/fs/multifs/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/multifs/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multifs/clusters/1a3s-mds-2c-client.yaml b/qa/suites/fs/multifs/clusters/1a3s-mds-2c-client.yaml
new file mode 120000
index 00000000..c190ea92
--- /dev/null
+++ b/qa/suites/fs/multifs/clusters/1a3s-mds-2c-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1a3s-mds-2c-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multifs/conf b/qa/suites/fs/multifs/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/fs/multifs/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/multifs/mount/.qa b/qa/suites/fs/multifs/mount/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/multifs/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multifs/mount/fuse.yaml b/qa/suites/fs/multifs/mount/fuse.yaml
new file mode 120000
index 00000000..0e55da9f
--- /dev/null
+++ b/qa/suites/fs/multifs/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multifs/objectstore-ec b/qa/suites/fs/multifs/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/fs/multifs/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/multifs/overrides/+ b/qa/suites/fs/multifs/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/multifs/overrides/+
diff --git a/qa/suites/fs/multifs/overrides/.qa b/qa/suites/fs/multifs/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/multifs/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multifs/overrides/frag_enable.yaml b/qa/suites/fs/multifs/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/multifs/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multifs/overrides/mon-debug.yaml b/qa/suites/fs/multifs/overrides/mon-debug.yaml
new file mode 100644
index 00000000..24b454c0
--- /dev/null
+++ b/qa/suites/fs/multifs/overrides/mon-debug.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ mon:
+ debug mon: 20
diff --git a/qa/suites/fs/multifs/overrides/whitelist_health.yaml b/qa/suites/fs/multifs/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/multifs/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multifs/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/multifs/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/multifs/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multifs/supported-random-distros$ b/qa/suites/fs/multifs/supported-random-distros$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/fs/multifs/supported-random-distros$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/multifs/tasks/.qa b/qa/suites/fs/multifs/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/multifs/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multifs/tasks/failover.yaml b/qa/suites/fs/multifs/tasks/failover.yaml
new file mode 100644
index 00000000..0e111a53
--- /dev/null
+++ b/qa/suites/fs/multifs/tasks/failover.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - not responding, replacing
+ - \(MDS_INSUFFICIENT_STANDBY\)
+ - \(MDS_ALL_DOWN\)
+ - \(MDS_UP_LESS_THAN_MAX\)
+ ceph-fuse:
+ disabled: true
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_failover
+
diff --git a/qa/suites/fs/permission/% b/qa/suites/fs/permission/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/permission/%
diff --git a/qa/suites/fs/permission/.qa b/qa/suites/fs/permission/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/permission/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/permission/begin.yaml b/qa/suites/fs/permission/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/fs/permission/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/permission/clusters/.qa b/qa/suites/fs/permission/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/permission/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/permission/clusters/fixed-2-ucephfs.yaml b/qa/suites/fs/permission/clusters/fixed-2-ucephfs.yaml
new file mode 120000
index 00000000..b0c41a89
--- /dev/null
+++ b/qa/suites/fs/permission/clusters/fixed-2-ucephfs.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/fixed-2-ucephfs.yaml \ No newline at end of file
diff --git a/qa/suites/fs/permission/conf b/qa/suites/fs/permission/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/fs/permission/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/permission/mount/.qa b/qa/suites/fs/permission/mount/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/permission/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/permission/mount/fuse.yaml b/qa/suites/fs/permission/mount/fuse.yaml
new file mode 120000
index 00000000..0e55da9f
--- /dev/null
+++ b/qa/suites/fs/permission/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/permission/objectstore-ec b/qa/suites/fs/permission/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/fs/permission/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/permission/overrides/+ b/qa/suites/fs/permission/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/permission/overrides/+
diff --git a/qa/suites/fs/permission/overrides/.qa b/qa/suites/fs/permission/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/permission/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/permission/overrides/frag_enable.yaml b/qa/suites/fs/permission/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/permission/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/permission/overrides/whitelist_health.yaml b/qa/suites/fs/permission/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/permission/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/permission/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/permission/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/permission/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/permission/supported-random-distros$ b/qa/suites/fs/permission/supported-random-distros$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/fs/permission/supported-random-distros$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/permission/tasks/.qa b/qa/suites/fs/permission/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/permission/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/permission/tasks/cfuse_workunit_misc.yaml b/qa/suites/fs/permission/tasks/cfuse_workunit_misc.yaml
new file mode 100644
index 00000000..618498e6
--- /dev/null
+++ b/qa/suites/fs/permission/tasks/cfuse_workunit_misc.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse default permissions: false
+ client acl type: posix_acl
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/misc/acl.sh
+ - fs/misc/chmod.sh
diff --git a/qa/suites/fs/permission/tasks/cfuse_workunit_suites_pjd.yaml b/qa/suites/fs/permission/tasks/cfuse_workunit_suites_pjd.yaml
new file mode 100644
index 00000000..09be2667
--- /dev/null
+++ b/qa/suites/fs/permission/tasks/cfuse_workunit_suites_pjd.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse set user groups: true
+ fuse default permissions: false
+ client acl type: posix_acl
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/fs/snaps/% b/qa/suites/fs/snaps/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/snaps/%
diff --git a/qa/suites/fs/snaps/.qa b/qa/suites/fs/snaps/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/snaps/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/snaps/begin.yaml b/qa/suites/fs/snaps/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/fs/snaps/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/snaps/clusters/.qa b/qa/suites/fs/snaps/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/snaps/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/snaps/clusters/fixed-2-ucephfs.yaml b/qa/suites/fs/snaps/clusters/fixed-2-ucephfs.yaml
new file mode 120000
index 00000000..b0c41a89
--- /dev/null
+++ b/qa/suites/fs/snaps/clusters/fixed-2-ucephfs.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/fixed-2-ucephfs.yaml \ No newline at end of file
diff --git a/qa/suites/fs/snaps/conf b/qa/suites/fs/snaps/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/fs/snaps/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/snaps/mount/.qa b/qa/suites/fs/snaps/mount/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/snaps/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/snaps/mount/fuse.yaml b/qa/suites/fs/snaps/mount/fuse.yaml
new file mode 120000
index 00000000..0e55da9f
--- /dev/null
+++ b/qa/suites/fs/snaps/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/snaps/objectstore-ec b/qa/suites/fs/snaps/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/fs/snaps/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/snaps/overrides/+ b/qa/suites/fs/snaps/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/snaps/overrides/+
diff --git a/qa/suites/fs/snaps/overrides/.qa b/qa/suites/fs/snaps/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/snaps/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/snaps/overrides/frag_enable.yaml b/qa/suites/fs/snaps/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/snaps/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/snaps/overrides/whitelist_health.yaml b/qa/suites/fs/snaps/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/snaps/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/snaps/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/snaps/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/snaps/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/snaps/supported-random-distros$ b/qa/suites/fs/snaps/supported-random-distros$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/fs/snaps/supported-random-distros$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/snaps/tasks/.qa b/qa/suites/fs/snaps/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/snaps/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/snaps/tasks/snaptests.yaml b/qa/suites/fs/snaps/tasks/snaptests.yaml
new file mode 100644
index 00000000..790c93c2
--- /dev/null
+++ b/qa/suites/fs/snaps/tasks/snaptests.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/snaps
diff --git a/qa/suites/fs/thrash/% b/qa/suites/fs/thrash/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/thrash/%
diff --git a/qa/suites/fs/thrash/.qa b/qa/suites/fs/thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/begin.yaml b/qa/suites/fs/thrash/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/fs/thrash/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/ceph-thrash/.qa b/qa/suites/fs/thrash/ceph-thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/thrash/ceph-thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/ceph-thrash/default.yaml b/qa/suites/fs/thrash/ceph-thrash/default.yaml
new file mode 100644
index 00000000..154615c5
--- /dev/null
+++ b/qa/suites/fs/thrash/ceph-thrash/default.yaml
@@ -0,0 +1,7 @@
+tasks:
+- mds_thrash:
+
+overrides:
+ ceph:
+ log-whitelist:
+ - not responding, replacing
diff --git a/qa/suites/fs/thrash/clusters/.qa b/qa/suites/fs/thrash/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/thrash/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/clusters/1-mds-1-client-coloc.yaml b/qa/suites/fs/thrash/clusters/1-mds-1-client-coloc.yaml
new file mode 120000
index 00000000..d15ecfda
--- /dev/null
+++ b/qa/suites/fs/thrash/clusters/1-mds-1-client-coloc.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-1-client-coloc.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/conf b/qa/suites/fs/thrash/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/fs/thrash/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/thrash/mount/.qa b/qa/suites/fs/thrash/mount/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/thrash/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/mount/fuse.yaml b/qa/suites/fs/thrash/mount/fuse.yaml
new file mode 120000
index 00000000..0e55da9f
--- /dev/null
+++ b/qa/suites/fs/thrash/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/msgr-failures/.qa b/qa/suites/fs/thrash/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/thrash/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/msgr-failures/none.yaml b/qa/suites/fs/thrash/msgr-failures/none.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/thrash/msgr-failures/none.yaml
diff --git a/qa/suites/fs/thrash/msgr-failures/osd-mds-delay.yaml b/qa/suites/fs/thrash/msgr-failures/osd-mds-delay.yaml
new file mode 100644
index 00000000..68802961
--- /dev/null
+++ b/qa/suites/fs/thrash/msgr-failures/osd-mds-delay.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 2500
+ ms inject delay type: osd mds
+ ms inject delay probability: .005
+ ms inject delay max: 1
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/fs/thrash/objectstore-ec b/qa/suites/fs/thrash/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/fs/thrash/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/thrash/overrides/+ b/qa/suites/fs/thrash/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/thrash/overrides/+
diff --git a/qa/suites/fs/thrash/overrides/.qa b/qa/suites/fs/thrash/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/thrash/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/overrides/frag_enable.yaml b/qa/suites/fs/thrash/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/thrash/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/overrides/session_timeout.yaml b/qa/suites/fs/thrash/overrides/session_timeout.yaml
new file mode 120000
index 00000000..fce0318c
--- /dev/null
+++ b/qa/suites/fs/thrash/overrides/session_timeout.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/session_timeout.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/overrides/whitelist_health.yaml b/qa/suites/fs/thrash/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/thrash/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/thrash/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/thrash/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/supported-random-distros$ b/qa/suites/fs/thrash/supported-random-distros$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/fs/thrash/supported-random-distros$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/tasks/.qa b/qa/suites/fs/thrash/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/thrash/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/tasks/cfuse_workunit_snaptests.yaml b/qa/suites/fs/thrash/tasks/cfuse_workunit_snaptests.yaml
new file mode 100644
index 00000000..790c93c2
--- /dev/null
+++ b/qa/suites/fs/thrash/tasks/cfuse_workunit_snaptests.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/snaps
diff --git a/qa/suites/fs/thrash/tasks/cfuse_workunit_suites_fsstress.yaml b/qa/suites/fs/thrash/tasks/cfuse_workunit_suites_fsstress.yaml
new file mode 120000
index 00000000..c2e859ff
--- /dev/null
+++ b/qa/suites/fs/thrash/tasks/cfuse_workunit_suites_fsstress.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_fsstress.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/tasks/cfuse_workunit_suites_pjd.yaml b/qa/suites/fs/thrash/tasks/cfuse_workunit_suites_pjd.yaml
new file mode 100644
index 00000000..37e315f7
--- /dev/null
+++ b/qa/suites/fs/thrash/tasks/cfuse_workunit_suites_pjd.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse set user groups: true
+ fuse default permissions: false
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/fs/thrash/tasks/cfuse_workunit_trivial_sync.yaml b/qa/suites/fs/thrash/tasks/cfuse_workunit_trivial_sync.yaml
new file mode 120000
index 00000000..a1df0327
--- /dev/null
+++ b/qa/suites/fs/thrash/tasks/cfuse_workunit_trivial_sync.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_trivial_sync.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/% b/qa/suites/fs/traceless/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/traceless/%
diff --git a/qa/suites/fs/traceless/.qa b/qa/suites/fs/traceless/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/traceless/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/begin.yaml b/qa/suites/fs/traceless/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/fs/traceless/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/clusters/.qa b/qa/suites/fs/traceless/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/traceless/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/clusters/fixed-2-ucephfs.yaml b/qa/suites/fs/traceless/clusters/fixed-2-ucephfs.yaml
new file mode 120000
index 00000000..b0c41a89
--- /dev/null
+++ b/qa/suites/fs/traceless/clusters/fixed-2-ucephfs.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/fixed-2-ucephfs.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/conf b/qa/suites/fs/traceless/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/fs/traceless/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/traceless/mount/.qa b/qa/suites/fs/traceless/mount/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/traceless/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/mount/fuse.yaml b/qa/suites/fs/traceless/mount/fuse.yaml
new file mode 120000
index 00000000..0e55da9f
--- /dev/null
+++ b/qa/suites/fs/traceless/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/objectstore-ec b/qa/suites/fs/traceless/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/fs/traceless/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/traceless/overrides/+ b/qa/suites/fs/traceless/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/traceless/overrides/+
diff --git a/qa/suites/fs/traceless/overrides/.qa b/qa/suites/fs/traceless/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/traceless/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/overrides/frag_enable.yaml b/qa/suites/fs/traceless/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/traceless/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/overrides/whitelist_health.yaml b/qa/suites/fs/traceless/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/traceless/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/traceless/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/traceless/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/supported-random-distros$ b/qa/suites/fs/traceless/supported-random-distros$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/fs/traceless/supported-random-distros$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/tasks/.qa b/qa/suites/fs/traceless/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/traceless/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_blogbench.yaml b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_blogbench.yaml
new file mode 120000
index 00000000..8702f4f3
--- /dev/null
+++ b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_blogbench.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_blogbench.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_dbench.yaml b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_dbench.yaml
new file mode 120000
index 00000000..b0f876c3
--- /dev/null
+++ b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_dbench.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_dbench.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_ffsb.yaml b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_ffsb.yaml
new file mode 120000
index 00000000..01e889b2
--- /dev/null
+++ b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_ffsb.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_ffsb.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_fsstress.yaml b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_fsstress.yaml
new file mode 120000
index 00000000..c2e859ff
--- /dev/null
+++ b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_fsstress.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_fsstress.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/traceless/.qa b/qa/suites/fs/traceless/traceless/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/traceless/traceless/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/traceless/50pc.yaml b/qa/suites/fs/traceless/traceless/50pc.yaml
new file mode 100644
index 00000000..e0418bcb
--- /dev/null
+++ b/qa/suites/fs/traceless/traceless/50pc.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ mds:
+ mds inject traceless reply probability: .5
diff --git a/qa/suites/fs/upgrade/.qa b/qa/suites/fs/upgrade/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/.qa b/qa/suites/fs/upgrade/featureful_client/.qa
new file mode 120000
index 00000000..11a54ed3
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/.qa
@@ -0,0 +1 @@
+../../../../ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/% b/qa/suites/fs/upgrade/featureful_client/old_client/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/%
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/.qa b/qa/suites/fs/upgrade/featureful_client/old_client/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/bluestore-bitmap.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/bluestore-bitmap.yaml
new file mode 120000
index 00000000..17ad98e7
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+../../../../../cephfs/objectstore-ec/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/clusters/.qa b/qa/suites/fs/upgrade/featureful_client/old_client/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/clusters/1-mds-2-client-micro.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/clusters/1-mds-2-client-micro.yaml
new file mode 120000
index 00000000..feb68f34
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/clusters/1-mds-2-client-micro.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-2-client-micro.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/conf b/qa/suites/fs/upgrade/featureful_client/old_client/conf
new file mode 120000
index 00000000..6d471298
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/% b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/%
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/.qa b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/frag_enable.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/no.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/no.yaml
new file mode 100644
index 00000000..f9e95daa
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/no.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 1
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/yes.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/yes.yaml
new file mode 100644
index 00000000..b3a9b5d6
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/yes.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 2
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/whitelist_health.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/% b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/%
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/.qa b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/0-luminous.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/0-luminous.yaml
new file mode 100644
index 00000000..7835cbf9
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/0-luminous.yaml
@@ -0,0 +1,41 @@
+meta:
+- desc: |
+ install ceph/luminous latest
+tasks:
+- install:
+ branch: luminous
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-diskprediction-cloud
+ - ceph-mgr-rook
+ - ceph-mgr-ssh
+ extra_packages: ['librados2']
+- print: "**** done installing luminous"
+- ceph:
+ mon_bind_addrvec: false
+ mon_bind_msgr2: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ conf:
+ global:
+ mon warn on pool no app: false
+ ms bind msgr2: false
+- exec:
+ osd.0:
+ - ceph osd require-osd-release luminous
+ - ceph osd set-require-min-compat-client luminous
+- print: "**** done ceph"
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/1-client.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/1-client.yaml
new file mode 100644
index 00000000..88d686fa
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/1-client.yaml
@@ -0,0 +1,8 @@
+tasks:
+- ceph-fuse:
+- print: "**** done luminous client"
+- workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
+- print: "**** done fsstress"
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/2-upgrade.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/2-upgrade.yaml
new file mode 100644
index 00000000..cd670cf6
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/2-upgrade.yaml
@@ -0,0 +1,56 @@
+overrides:
+ ceph:
+ mon_bind_msgr2: false
+ mon_bind_addrvec: false
+ log-whitelist:
+ - scrub mismatch
+ - ScrubResult
+ - wrongly marked
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(SLOW_OPS\)
+ - overall HEALTH_
+ - \(MON_MSGR2_NOT_ENABLED\)
+ - slow request
+ conf:
+ global:
+ bluestore warn on legacy statfs: false
+ mon pg warn min per osd: 0
+ mon:
+ mon warn on osd down out interval zero: false
+
+tasks:
+- mds_pre_upgrade:
+- print: "**** done mds pre-upgrade sequence"
+- install.upgrade:
+ mon.a:
+ mon.b:
+- print: "**** done install.upgrade both hosts"
+- ceph.restart:
+ daemons: [mon.*, mgr.*]
+ mon-health-to-clog: false
+ wait-for-healthy: false
+- exec:
+ mon.a:
+ - ceph config set global mon_warn_on_msgr2_not_enabled false
+- ceph.healthy:
+- ceph.restart:
+ daemons: [osd.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- ceph.stop: [mds.*]
+- ceph.restart:
+ daemons: [mds.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- exec:
+ mon.a:
+ - ceph mon enable-msgr2
+ - ceph config rm global mon_warn_on_msgr2_not_enabled
+- exec:
+ mon.a:
+ - ceph osd dump -f json-pretty
+ - ceph versions
+ - ceph osd require-osd-release nautilus
+ #- ceph osd set-require-min-compat-client nautilus
+- ceph.healthy:
+- print: "**** done ceph.restart"
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/mimic.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/mimic.yaml
new file mode 100644
index 00000000..36720676
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/mimic.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - missing required features
+tasks:
+- exec:
+ mon.a:
+ - ceph fs dump --format=json-pretty
+ - ceph fs set cephfs min_compat_client mimic
+- fs.clients_evicted:
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/no.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/no.yaml
new file mode 100644
index 00000000..b495eb41
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/no.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
+- print: "**** done fsstress"
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/% b/qa/suites/fs/upgrade/featureful_client/upgraded_client/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/%
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/.qa b/qa/suites/fs/upgrade/featureful_client/upgraded_client/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/bluestore-bitmap.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/bluestore-bitmap.yaml
new file mode 120000
index 00000000..17ad98e7
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+../../../../../cephfs/objectstore-ec/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/.qa b/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/1-mds-2-client-micro.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/1-mds-2-client-micro.yaml
new file mode 120000
index 00000000..feb68f34
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/1-mds-2-client-micro.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-2-client-micro.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/conf b/qa/suites/fs/upgrade/featureful_client/upgraded_client/conf
new file mode 120000
index 00000000..6d471298
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/% b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/%
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/.qa b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/frag_enable.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/no.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/no.yaml
new file mode 100644
index 00000000..f9e95daa
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/no.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 1
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/yes.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/yes.yaml
new file mode 100644
index 00000000..b3a9b5d6
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/yes.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 2
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/whitelist_health.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/% b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/%
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/.qa b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/0-luminous.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/0-luminous.yaml
new file mode 100644
index 00000000..7835cbf9
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/0-luminous.yaml
@@ -0,0 +1,41 @@
+meta:
+- desc: |
+ install ceph/luminous latest
+tasks:
+- install:
+ branch: luminous
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-diskprediction-cloud
+ - ceph-mgr-rook
+ - ceph-mgr-ssh
+ extra_packages: ['librados2']
+- print: "**** done installing luminous"
+- ceph:
+ mon_bind_addrvec: false
+ mon_bind_msgr2: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ conf:
+ global:
+ mon warn on pool no app: false
+ ms bind msgr2: false
+- exec:
+ osd.0:
+ - ceph osd require-osd-release luminous
+ - ceph osd set-require-min-compat-client luminous
+- print: "**** done ceph"
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/1-client.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/1-client.yaml
new file mode 100644
index 00000000..dc1c0d8d
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/1-client.yaml
@@ -0,0 +1,11 @@
+nuke-on-error: false
+overrides:
+ nuke-on-error: false
+tasks:
+- ceph-fuse:
+- print: "**** done luminous client"
+#- workunit:
+# clients:
+# all:
+# - suites/fsstress.sh
+- print: "**** done fsstress"
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/2-upgrade.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/2-upgrade.yaml
new file mode 100644
index 00000000..cd670cf6
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/2-upgrade.yaml
@@ -0,0 +1,56 @@
+overrides:
+ ceph:
+ mon_bind_msgr2: false
+ mon_bind_addrvec: false
+ log-whitelist:
+ - scrub mismatch
+ - ScrubResult
+ - wrongly marked
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(SLOW_OPS\)
+ - overall HEALTH_
+ - \(MON_MSGR2_NOT_ENABLED\)
+ - slow request
+ conf:
+ global:
+ bluestore warn on legacy statfs: false
+ mon pg warn min per osd: 0
+ mon:
+ mon warn on osd down out interval zero: false
+
+tasks:
+- mds_pre_upgrade:
+- print: "**** done mds pre-upgrade sequence"
+- install.upgrade:
+ mon.a:
+ mon.b:
+- print: "**** done install.upgrade both hosts"
+- ceph.restart:
+ daemons: [mon.*, mgr.*]
+ mon-health-to-clog: false
+ wait-for-healthy: false
+- exec:
+ mon.a:
+ - ceph config set global mon_warn_on_msgr2_not_enabled false
+- ceph.healthy:
+- ceph.restart:
+ daemons: [osd.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- ceph.stop: [mds.*]
+- ceph.restart:
+ daemons: [mds.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- exec:
+ mon.a:
+ - ceph mon enable-msgr2
+ - ceph config rm global mon_warn_on_msgr2_not_enabled
+- exec:
+ mon.a:
+ - ceph osd dump -f json-pretty
+ - ceph versions
+ - ceph osd require-osd-release nautilus
+ #- ceph osd set-require-min-compat-client nautilus
+- ceph.healthy:
+- print: "**** done ceph.restart"
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/3-client-upgrade.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/3-client-upgrade.yaml
new file mode 100644
index 00000000..58fdfdbd
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/3-client-upgrade.yaml
@@ -0,0 +1,14 @@
+tasks:
+- install.upgrade:
+ client.0:
+- print: "**** done install.upgrade on client.0"
+- ceph-fuse:
+ client.0:
+ mounted: false
+ client.1:
+ skip: true
+- ceph-fuse:
+ client.0:
+ client.1:
+ skip: true
+- print: "**** done remount client"
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/4-compat_client.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/4-compat_client.yaml
new file mode 100644
index 00000000..bdf484da
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/4-compat_client.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - missing required features
+tasks:
+- exec:
+ mon.a:
+ - ceph fs dump --format=json-pretty
+ - ceph fs set cephfs min_compat_client mimic
+- fs.clients_evicted:
+ clients:
+ client.0: False
+ client.1: True
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/5-client-sanity.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/5-client-sanity.yaml
new file mode 100644
index 00000000..e206457e
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/5-client-sanity.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - suites/fsstress.sh
+- print: "**** done fsstress"
diff --git a/qa/suites/fs/upgrade/snaps/% b/qa/suites/fs/upgrade/snaps/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/%
diff --git a/qa/suites/fs/upgrade/snaps/.qa b/qa/suites/fs/upgrade/snaps/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/snaps/clusters/.qa b/qa/suites/fs/upgrade/snaps/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/snaps/clusters/3-mds.yaml b/qa/suites/fs/upgrade/snaps/clusters/3-mds.yaml
new file mode 120000
index 00000000..d7ec418e
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/clusters/3-mds.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/3-mds.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/snaps/conf b/qa/suites/fs/upgrade/snaps/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/snaps/objectstore-ec b/qa/suites/fs/upgrade/snaps/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/snaps/overrides/% b/qa/suites/fs/upgrade/snaps/overrides/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/overrides/%
diff --git a/qa/suites/fs/upgrade/snaps/overrides/.qa b/qa/suites/fs/upgrade/snaps/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/snaps/overrides/frag_enable.yaml b/qa/suites/fs/upgrade/snaps/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/snaps/overrides/multimds/.qa b/qa/suites/fs/upgrade/snaps/overrides/multimds/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/overrides/multimds/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/snaps/overrides/multimds/no.yaml b/qa/suites/fs/upgrade/snaps/overrides/multimds/no.yaml
new file mode 100644
index 00000000..c740a450
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/overrides/multimds/no.yaml
@@ -0,0 +1,3 @@
+overrides:
+ ceph:
+ max_mds: 1
diff --git a/qa/suites/fs/upgrade/snaps/overrides/multimds/yes.yaml b/qa/suites/fs/upgrade/snaps/overrides/multimds/yes.yaml
new file mode 100644
index 00000000..ecf118d9
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/overrides/multimds/yes.yaml
@@ -0,0 +1,3 @@
+overrides:
+ ceph:
+ max_mds: 2
diff --git a/qa/suites/fs/upgrade/snaps/overrides/whitelist_health.yaml b/qa/suites/fs/upgrade/snaps/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/snaps/overrides/whitelist_rstat.yaml b/qa/suites/fs/upgrade/snaps/overrides/whitelist_rstat.yaml
new file mode 100644
index 00000000..434b5ddc
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/overrides/whitelist_rstat.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - inconsistent rstat on inode
+ conf:
+ mds:
+ mds debug scatterstat: 0
+ mds verify scatter: 0
diff --git a/qa/suites/fs/upgrade/snaps/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/upgrade/snaps/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/snaps/tasks/% b/qa/suites/fs/upgrade/snaps/tasks/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/tasks/%
diff --git a/qa/suites/fs/upgrade/snaps/tasks/.qa b/qa/suites/fs/upgrade/snaps/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/snaps/tasks/0-luminous.yaml b/qa/suites/fs/upgrade/snaps/tasks/0-luminous.yaml
new file mode 100644
index 00000000..7835cbf9
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/tasks/0-luminous.yaml
@@ -0,0 +1,41 @@
+meta:
+- desc: |
+ install ceph/luminous latest
+tasks:
+- install:
+ branch: luminous
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-diskprediction-cloud
+ - ceph-mgr-rook
+ - ceph-mgr-ssh
+ extra_packages: ['librados2']
+- print: "**** done installing luminous"
+- ceph:
+ mon_bind_addrvec: false
+ mon_bind_msgr2: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ conf:
+ global:
+ mon warn on pool no app: false
+ ms bind msgr2: false
+- exec:
+ osd.0:
+ - ceph osd require-osd-release luminous
+ - ceph osd set-require-min-compat-client luminous
+- print: "**** done ceph"
diff --git a/qa/suites/fs/upgrade/snaps/tasks/1-client.yaml b/qa/suites/fs/upgrade/snaps/tasks/1-client.yaml
new file mode 100644
index 00000000..0aa6dcf7
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/tasks/1-client.yaml
@@ -0,0 +1,13 @@
+tasks:
+- ceph-fuse:
+- print: "**** done luminous client"
+- exec:
+ mon.a:
+ - ceph fs set cephfs allow_new_snaps true --yes-i-really-mean-it
+- workunit:
+ timeout: 5m
+ cleanup: false
+ clients:
+ client.0:
+ - fs/snap-hierarchy.sh
+- print: "**** done snap hierarchy"
diff --git a/qa/suites/fs/upgrade/snaps/tasks/2-upgrade.yaml b/qa/suites/fs/upgrade/snaps/tasks/2-upgrade.yaml
new file mode 100644
index 00000000..7252bb35
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/tasks/2-upgrade.yaml
@@ -0,0 +1,19 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ mon pg warn min per osd: 0
+ bluestore warn on legacy statfs: false
+
+tasks:
+- mds_pre_upgrade:
+- print: "**** done mds pre-upgrade sequence"
+- install.upgrade:
+ mon.a:
+ mon.b:
+- print: "**** done install.upgrade both hosts"
+- ceph.stop: [mds.*]
+- ceph.restart:
+ daemons: [mon.*, mgr.*, osd.*, mds.*]
+ mon-health-to-clog: false
+- print: "**** done ceph.restart"
diff --git a/qa/suites/fs/upgrade/snaps/tasks/3-sanity.yaml b/qa/suites/fs/upgrade/snaps/tasks/3-sanity.yaml
new file mode 100644
index 00000000..d93dc3ba
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/tasks/3-sanity.yaml
@@ -0,0 +1,10 @@
+tasks:
+- exec:
+ mon.a:
+ - ceph status
+ - ceph fs dump --format=json-pretty
+ - ceph fs set cephfs max_mds 2 && exit 1 || true
+- print: "**** confirmed cannot set max_mds=2"
+- exec:
+ mon.a:
+ - ceph fs set cephfs allow_new_snaps true
diff --git a/qa/suites/fs/upgrade/snaps/tasks/4-client-upgrade/.qa b/qa/suites/fs/upgrade/snaps/tasks/4-client-upgrade/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/tasks/4-client-upgrade/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/snaps/tasks/4-client-upgrade/no.yaml b/qa/suites/fs/upgrade/snaps/tasks/4-client-upgrade/no.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/tasks/4-client-upgrade/no.yaml
diff --git a/qa/suites/fs/upgrade/snaps/tasks/4-client-upgrade/yes.yaml b/qa/suites/fs/upgrade/snaps/tasks/4-client-upgrade/yes.yaml
new file mode 100644
index 00000000..13b590e2
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/tasks/4-client-upgrade/yes.yaml
@@ -0,0 +1,10 @@
+tasks:
+- install.upgrade:
+ client.0:
+- print: "**** done install.upgrade on client.0"
+- ceph-fuse:
+ client.0:
+ mounted: false
+- ceph-fuse:
+ client.0:
+- print: "**** done remount client"
diff --git a/qa/suites/fs/upgrade/snaps/tasks/5-client-sanity.yaml b/qa/suites/fs/upgrade/snaps/tasks/5-client-sanity.yaml
new file mode 100644
index 00000000..680e4407
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/tasks/5-client-sanity.yaml
@@ -0,0 +1,10 @@
+tasks:
+- workunit:
+ timeout: 5m
+ cleanup: false
+ env:
+ VERIFY: verify
+ clients:
+ client.0:
+ - fs/snap-hierarchy.sh
+- print: "**** done verify snap hierarchy"
diff --git a/qa/suites/fs/upgrade/snaps/tasks/6-snap-upgrade.yaml b/qa/suites/fs/upgrade/snaps/tasks/6-snap-upgrade.yaml
new file mode 100644
index 00000000..fe0b17e1
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/tasks/6-snap-upgrade.yaml
@@ -0,0 +1,16 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - bad backtrace on inode
+tasks:
+- cephfs_upgrade_snap:
+- print: "**** upgraded snapshot metadata"
+- exec:
+ mon.a:
+ - ceph fs set cephfs max_mds 2
+- print: "**** increased max_mds=2"
+- sleep:
+ duration: 10
+- exec:
+ mon.a:
+ - ceph fs dump | grep '^max_mds.*2'
diff --git a/qa/suites/fs/upgrade/snaps/tasks/7-client-sanity.yaml b/qa/suites/fs/upgrade/snaps/tasks/7-client-sanity.yaml
new file mode 120000
index 00000000..4ad65e45
--- /dev/null
+++ b/qa/suites/fs/upgrade/snaps/tasks/7-client-sanity.yaml
@@ -0,0 +1 @@
+5-client-sanity.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/.qa b/qa/suites/fs/upgrade/volumes/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/% b/qa/suites/fs/upgrade/volumes/import-legacy/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/%
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/.qa b/qa/suites/fs/upgrade/volumes/import-legacy/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/bluestore-bitmap.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/bluestore-bitmap.yaml
new file mode 120000
index 00000000..17ad98e7
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+../../../../../cephfs/objectstore-ec/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/clusters/.qa b/qa/suites/fs/upgrade/volumes/import-legacy/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/clusters/1-mds-2-client-micro.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/clusters/1-mds-2-client-micro.yaml
new file mode 100644
index 00000000..9b443f7d
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/clusters/1-mds-2-client-micro.yaml
@@ -0,0 +1,7 @@
+roles:
+- [mon.a, mon.b, mon.c, mgr.x, mgr.y, mds.a, mds.b, mds.c, osd.0, osd.1, osd.2, osd.3]
+- [client.0, client.1]
+openstack:
+- volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/conf b/qa/suites/fs/upgrade/volumes/import-legacy/conf
new file mode 120000
index 00000000..6d471298
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/overrides/+ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/+
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/overrides/.qa b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/overrides/frag_enable.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/overrides/pg-warn.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/pg-warn.yaml
new file mode 100644
index 00000000..4ae54a40
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/pg-warn.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ mon pg warn min per osd: 0
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/overrides/whitelist_health.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/tasks/% b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/%
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/tasks/.qa b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/tasks/0-mimic.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/0-mimic.yaml
new file mode 100644
index 00000000..1ca8973b
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/0-mimic.yaml
@@ -0,0 +1,42 @@
+meta:
+- desc: |
+ install ceph/mimic latest
+tasks:
+- install:
+ branch: mimic #tag: v13.2.8
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-diskprediction-cloud
+ - ceph-mgr-rook
+ - ceph-mgr-cephadm
+ - cephadm
+ extra_packages: ['librados2']
+- print: "**** done installing mimic"
+- ceph:
+ mon_bind_addrvec: false
+ mon_bind_msgr2: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ conf:
+ global:
+ mon warn on pool no app: false
+ ms bind msgr2: false
+- exec:
+ osd.0:
+ - ceph osd require-osd-release mimic
+ - ceph osd set-require-min-compat-client mimic
+- print: "**** done ceph"
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/tasks/1-client.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/1-client.yaml
new file mode 100644
index 00000000..82731071
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/1-client.yaml
@@ -0,0 +1,33 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - fs/upgrade/volume_client
+ env:
+ ACTION: create
+- print: "**** fs/volume_client create"
+- ceph-fuse:
+ client.0:
+ mount_path: /volumes/_nogroup/vol_isolated
+ mountpoint: mnt.0
+ auth_id: vol_data_isolated
+ client.1:
+ mount_path: /volumes/_nogroup/vol_default
+ mountpoint: mnt.1
+ auth_id: vol_default
+- print: "**** ceph-fuse vol_isolated"
+- workunit:
+ clients:
+ client.0:
+ - fs/upgrade/volume_client
+ env:
+ ACTION: populate
+ cleanup: false
+- workunit:
+ clients:
+ client.1:
+ - fs/upgrade/volume_client
+ env:
+ ACTION: populate
+ cleanup: false
+- print: "**** fs/volume_client populate"
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/tasks/2-upgrade.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/2-upgrade.yaml
new file mode 100644
index 00000000..fd23132b
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/2-upgrade.yaml
@@ -0,0 +1,54 @@
+overrides:
+ ceph:
+ mon_bind_msgr2: false
+ mon_bind_addrvec: false
+ log-whitelist:
+ - scrub mismatch
+ - ScrubResult
+ - wrongly marked
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(SLOW_OPS\)
+ - overall HEALTH_
+ - \(MON_MSGR2_NOT_ENABLED\)
+ - slow request
+ conf:
+ global:
+ bluestore warn on legacy statfs: false
+ bluestore warn on no per pool omap: false
+ mon:
+ mon warn on osd down out interval zero: false
+
+tasks:
+- mds_pre_upgrade:
+- print: "**** done mds pre-upgrade sequence"
+- install.upgrade:
+ mon.a:
+- print: "**** done install.upgrade both hosts"
+- ceph.restart:
+ daemons: [mon.*, mgr.*]
+ mon-health-to-clog: false
+ wait-for-healthy: false
+- exec:
+ mon.a:
+ - ceph config set global mon_warn_on_msgr2_not_enabled false
+- ceph.healthy:
+- ceph.restart:
+ daemons: [osd.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- ceph.stop: [mds.*]
+- ceph.restart:
+ daemons: [mds.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- exec:
+ mon.a:
+ - ceph mon enable-msgr2
+ - ceph versions
+ - ceph osd dump -f json-pretty
+ - ceph config rm global mon_warn_on_msgr2_not_enabled
+ - ceph osd require-osd-release nautilus
+ - for f in `ceph osd pool ls` ; do ceph osd pool set $f pg_autoscale_mode off ; done
+ #- ceph osd set-require-min-compat-client nautilus
+- ceph.healthy:
+- print: "**** done ceph.restart"
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/tasks/3-verify.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/3-verify.yaml
new file mode 100644
index 00000000..003409ca
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/3-verify.yaml
@@ -0,0 +1,25 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - missing required features
+tasks:
+- exec:
+ mon.a:
+ - ceph fs dump --format=json-pretty
+ - ceph fs volume ls
+ - ceph fs subvolume ls cephfs
+- workunit:
+ clients:
+ client.0:
+ - fs/upgrade/volume_client
+ env:
+ ACTION: verify
+ cleanup: false
+- workunit:
+ clients:
+ client.1:
+ - fs/upgrade/volume_client
+ env:
+ ACTION: verify
+ cleanup: false
+- print: "**** fs/volume_client verify"
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/ubuntu_18.04.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/ubuntu_18.04.yaml
new file mode 120000
index 00000000..cfb85f10
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/ubuntu_18.04.yaml
@@ -0,0 +1 @@
+.qa/distros/all/ubuntu_18.04.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/% b/qa/suites/fs/verify/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/verify/%
diff --git a/qa/suites/fs/verify/.qa b/qa/suites/fs/verify/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/verify/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/begin.yaml b/qa/suites/fs/verify/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/fs/verify/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/centos_latest.yaml b/qa/suites/fs/verify/centos_latest.yaml
new file mode 120000
index 00000000..bd9854e7
--- /dev/null
+++ b/qa/suites/fs/verify/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/clusters/.qa b/qa/suites/fs/verify/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/verify/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/clusters/fixed-2-ucephfs.yaml b/qa/suites/fs/verify/clusters/fixed-2-ucephfs.yaml
new file mode 120000
index 00000000..b0c41a89
--- /dev/null
+++ b/qa/suites/fs/verify/clusters/fixed-2-ucephfs.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/fixed-2-ucephfs.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/conf b/qa/suites/fs/verify/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/fs/verify/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/verify/mount/.qa b/qa/suites/fs/verify/mount/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/verify/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/mount/fuse.yaml b/qa/suites/fs/verify/mount/fuse.yaml
new file mode 120000
index 00000000..0e55da9f
--- /dev/null
+++ b/qa/suites/fs/verify/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/objectstore-ec b/qa/suites/fs/verify/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/fs/verify/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/verify/overrides/+ b/qa/suites/fs/verify/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/+
diff --git a/qa/suites/fs/verify/overrides/.qa b/qa/suites/fs/verify/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/overrides/frag_enable.yaml b/qa/suites/fs/verify/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/overrides/mon-debug.yaml b/qa/suites/fs/verify/overrides/mon-debug.yaml
new file mode 100644
index 00000000..6ed3e6d5
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/mon-debug.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ mon:
+ debug ms: 1
+ debug mon: 20
diff --git a/qa/suites/fs/verify/overrides/session_timeout.yaml b/qa/suites/fs/verify/overrides/session_timeout.yaml
new file mode 120000
index 00000000..fce0318c
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/session_timeout.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/session_timeout.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/overrides/whitelist_health.yaml b/qa/suites/fs/verify/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/fs/verify/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/tasks/.qa b/qa/suites/fs/verify/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/verify/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/tasks/cfuse_workunit_suites_dbench.yaml b/qa/suites/fs/verify/tasks/cfuse_workunit_suites_dbench.yaml
new file mode 120000
index 00000000..b0f876c3
--- /dev/null
+++ b/qa/suites/fs/verify/tasks/cfuse_workunit_suites_dbench.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_dbench.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/tasks/cfuse_workunit_suites_fsstress.yaml b/qa/suites/fs/verify/tasks/cfuse_workunit_suites_fsstress.yaml
new file mode 120000
index 00000000..c2e859ff
--- /dev/null
+++ b/qa/suites/fs/verify/tasks/cfuse_workunit_suites_fsstress.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_fsstress.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/validater/.qa b/qa/suites/fs/verify/validater/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/fs/verify/validater/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/validater/lockdep.yaml b/qa/suites/fs/verify/validater/lockdep.yaml
new file mode 100644
index 00000000..25f84355
--- /dev/null
+++ b/qa/suites/fs/verify/validater/lockdep.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ lockdep: true
diff --git a/qa/suites/fs/verify/validater/valgrind.yaml b/qa/suites/fs/verify/validater/valgrind.yaml
new file mode 100644
index 00000000..3da39d69
--- /dev/null
+++ b/qa/suites/fs/verify/validater/valgrind.yaml
@@ -0,0 +1,29 @@
+# Only works on os_type: centos
+# See http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+
+overrides:
+ install:
+ ceph:
+ debuginfo: true
+ ceph:
+ # Valgrind makes everything slow, so ignore slow requests and extend heartbeat grace
+ log-whitelist:
+ - slow requests are blocked
+ conf:
+ global:
+ osd heartbeat grace: 40
+ mds:
+ mds heartbeat grace: 60
+ mon:
+ mon osd crush smoke test: false
+ osd:
+ osd fast shutdown: false
+ valgrind:
+ mon: [--tool=memcheck, --leak-check=full, --show-reachable=yes]
+ osd: [--tool=memcheck]
+ mds: [--tool=memcheck]
+# see https://tracker.ceph.com/issues/38621
+# mgr: [--tool=memcheck]
+ ceph-fuse:
+ client.0:
+ valgrind: [--tool=memcheck, --leak-check=full, --show-reachable=yes]
diff --git a/qa/suites/hadoop/.qa b/qa/suites/hadoop/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/hadoop/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/hadoop/basic/% b/qa/suites/hadoop/basic/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/hadoop/basic/%
diff --git a/qa/suites/hadoop/basic/.qa b/qa/suites/hadoop/basic/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/hadoop/basic/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/hadoop/basic/clusters/.qa b/qa/suites/hadoop/basic/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/hadoop/basic/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/hadoop/basic/clusters/fixed-3.yaml b/qa/suites/hadoop/basic/clusters/fixed-3.yaml
new file mode 100644
index 00000000..56b0be4c
--- /dev/null
+++ b/qa/suites/hadoop/basic/clusters/fixed-3.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ client permissions: false
+roles:
+- [mon.0, mds.a, osd.0, hadoop.master.0]
+- [mon.1, mgr.x, osd.1, hadoop.slave.0]
+- [mon.2, mgr.y, hadoop.slave.1, client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 1
+ size: 10 # GB
diff --git a/qa/suites/hadoop/basic/distros/.qa b/qa/suites/hadoop/basic/distros/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/hadoop/basic/distros/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/hadoop/basic/distros/ubuntu_latest.yaml b/qa/suites/hadoop/basic/distros/ubuntu_latest.yaml
new file mode 120000
index 00000000..3a09f9ab
--- /dev/null
+++ b/qa/suites/hadoop/basic/distros/ubuntu_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/ubuntu_latest.yaml \ No newline at end of file
diff --git a/qa/suites/hadoop/basic/filestore-xfs.yaml b/qa/suites/hadoop/basic/filestore-xfs.yaml
new file mode 120000
index 00000000..41f2a9d1
--- /dev/null
+++ b/qa/suites/hadoop/basic/filestore-xfs.yaml
@@ -0,0 +1 @@
+.qa/objectstore/filestore-xfs.yaml \ No newline at end of file
diff --git a/qa/suites/hadoop/basic/tasks/.qa b/qa/suites/hadoop/basic/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/hadoop/basic/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/hadoop/basic/tasks/repl.yaml b/qa/suites/hadoop/basic/tasks/repl.yaml
new file mode 100644
index 00000000..60cdcca3
--- /dev/null
+++ b/qa/suites/hadoop/basic/tasks/repl.yaml
@@ -0,0 +1,8 @@
+tasks:
+- ssh_keys:
+- install:
+- ceph:
+- hadoop:
+- workunit:
+ clients:
+ client.0: [hadoop/repl.sh]
diff --git a/qa/suites/hadoop/basic/tasks/terasort.yaml b/qa/suites/hadoop/basic/tasks/terasort.yaml
new file mode 100644
index 00000000..4377894f
--- /dev/null
+++ b/qa/suites/hadoop/basic/tasks/terasort.yaml
@@ -0,0 +1,10 @@
+tasks:
+- ssh_keys:
+- install:
+- ceph:
+- hadoop:
+- workunit:
+ clients:
+ client.0: [hadoop/terasort.sh]
+ env:
+ NUM_RECORDS: "10000000"
diff --git a/qa/suites/hadoop/basic/tasks/wordcount.yaml b/qa/suites/hadoop/basic/tasks/wordcount.yaml
new file mode 100644
index 00000000..b84941b8
--- /dev/null
+++ b/qa/suites/hadoop/basic/tasks/wordcount.yaml
@@ -0,0 +1,8 @@
+tasks:
+- ssh_keys:
+- install:
+- ceph:
+- hadoop:
+- workunit:
+ clients:
+ client.0: [hadoop/wordcount.sh]
diff --git a/qa/suites/kcephfs/.qa b/qa/suites/kcephfs/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/% b/qa/suites/kcephfs/cephfs/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/%
diff --git a/qa/suites/kcephfs/cephfs/.qa b/qa/suites/kcephfs/cephfs/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/begin.yaml b/qa/suites/kcephfs/cephfs/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/clusters/.qa b/qa/suites/kcephfs/cephfs/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/clusters/1-mds-1-client.yaml b/qa/suites/kcephfs/cephfs/clusters/1-mds-1-client.yaml
new file mode 120000
index 00000000..64bdb79f
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/clusters/1-mds-1-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-1-client.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/conf b/qa/suites/kcephfs/cephfs/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/inline/.qa b/qa/suites/kcephfs/cephfs/inline/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/inline/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/inline/no.yaml b/qa/suites/kcephfs/cephfs/inline/no.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/inline/no.yaml
diff --git a/qa/suites/kcephfs/cephfs/inline/yes.yaml b/qa/suites/kcephfs/cephfs/inline/yes.yaml
new file mode 100644
index 00000000..da8677a5
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/inline/yes.yaml
@@ -0,0 +1,4 @@
+tasks:
+- exec:
+ client.0:
+ - sudo ceph fs set cephfs inline_data true --yes-i-really-mean-it
diff --git a/qa/suites/kcephfs/cephfs/kclient b/qa/suites/kcephfs/cephfs/kclient
new file mode 120000
index 00000000..893d2d36
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/kclient
@@ -0,0 +1 @@
+.qa/cephfs/mount/kclient \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/objectstore-ec b/qa/suites/kcephfs/cephfs/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/overrides/+ b/qa/suites/kcephfs/cephfs/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/overrides/+
diff --git a/qa/suites/kcephfs/cephfs/overrides/.qa b/qa/suites/kcephfs/cephfs/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/overrides/frag_enable.yaml b/qa/suites/kcephfs/cephfs/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/overrides/log-config.yaml b/qa/suites/kcephfs/cephfs/overrides/log-config.yaml
new file mode 120000
index 00000000..d955aa5b
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/overrides/log-config.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/log-config.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/overrides/osd-asserts.yaml b/qa/suites/kcephfs/cephfs/overrides/osd-asserts.yaml
new file mode 120000
index 00000000..f290c749
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/overrides/osd-asserts.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/osd-asserts.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/overrides/whitelist_health.yaml b/qa/suites/kcephfs/cephfs/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/kcephfs/cephfs/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/tasks/.qa b/qa/suites/kcephfs/cephfs/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_direct_io.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_direct_io.yaml
new file mode 100644
index 00000000..d0128bce
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_direct_io.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - direct_io
+
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_kernel_untar_build.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_kernel_untar_build.yaml
new file mode 100644
index 00000000..5c9acc10
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_kernel_untar_build.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - kernel_untar_build.sh
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_misc.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_misc.yaml
new file mode 100644
index 00000000..aa62b9e8
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_misc.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/misc
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_o_trunc.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_o_trunc.yaml
new file mode 100644
index 00000000..91c953b9
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_o_trunc.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/test_o_trunc.sh
+
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_snaps.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_snaps.yaml
new file mode 100644
index 00000000..790c93c2
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_snaps.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/snaps
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_dbench.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_dbench.yaml
new file mode 100644
index 00000000..41b2bc8e
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_dbench.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/dbench.sh
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_ffsb.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_ffsb.yaml
new file mode 100644
index 00000000..3eedd281
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_ffsb.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - SLOW_OPS
+ - slow request
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/ffsb.sh
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_fsstress.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_fsstress.yaml
new file mode 100644
index 00000000..ddb18fb7
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_fsstress.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_fsx.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_fsx.yaml
new file mode 100644
index 00000000..8b2b1ab5
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_fsx.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsx.sh
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_fsync.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_fsync.yaml
new file mode 100644
index 00000000..7efa1adb
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_fsync.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsync-tester.sh
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_iozone.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_iozone.yaml
new file mode 100644
index 00000000..9270f3c5
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_iozone.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/iozone.sh
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_pjd.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_pjd.yaml
new file mode 100644
index 00000000..1de182ce
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_suites_pjd.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_trivial_sync.yaml b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_trivial_sync.yaml
new file mode 100644
index 00000000..36e7411b
--- /dev/null
+++ b/qa/suites/kcephfs/cephfs/tasks/kclient_workunit_trivial_sync.yaml
@@ -0,0 +1,4 @@
+tasks:
+- workunit:
+ clients:
+ all: [fs/misc/trivial_sync.sh]
diff --git a/qa/suites/kcephfs/mixed-clients/% b/qa/suites/kcephfs/mixed-clients/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/%
diff --git a/qa/suites/kcephfs/mixed-clients/.qa b/qa/suites/kcephfs/mixed-clients/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/begin.yaml b/qa/suites/kcephfs/mixed-clients/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/clusters/.qa b/qa/suites/kcephfs/mixed-clients/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/clusters/1-mds-2-client.yaml b/qa/suites/kcephfs/mixed-clients/clusters/1-mds-2-client.yaml
new file mode 120000
index 00000000..9f4f161a
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/clusters/1-mds-2-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-2-client.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/conf b/qa/suites/kcephfs/mixed-clients/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/kclient-overrides b/qa/suites/kcephfs/mixed-clients/kclient-overrides
new file mode 120000
index 00000000..58b04fb2
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/kclient-overrides
@@ -0,0 +1 @@
+.qa/cephfs/mount/kclient/overrides/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/objectstore-ec b/qa/suites/kcephfs/mixed-clients/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/overrides/+ b/qa/suites/kcephfs/mixed-clients/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/overrides/+
diff --git a/qa/suites/kcephfs/mixed-clients/overrides/.qa b/qa/suites/kcephfs/mixed-clients/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/overrides/frag_enable.yaml b/qa/suites/kcephfs/mixed-clients/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/overrides/log-config.yaml b/qa/suites/kcephfs/mixed-clients/overrides/log-config.yaml
new file mode 120000
index 00000000..d955aa5b
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/overrides/log-config.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/log-config.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/overrides/osd-asserts.yaml b/qa/suites/kcephfs/mixed-clients/overrides/osd-asserts.yaml
new file mode 120000
index 00000000..f290c749
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/overrides/osd-asserts.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/osd-asserts.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/overrides/whitelist_health.yaml b/qa/suites/kcephfs/mixed-clients/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/kcephfs/mixed-clients/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/tasks/.qa b/qa/suites/kcephfs/mixed-clients/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/mixed-clients/tasks/kernel_cfuse_workunits_dbench_iozone.yaml b/qa/suites/kcephfs/mixed-clients/tasks/kernel_cfuse_workunits_dbench_iozone.yaml
new file mode 100644
index 00000000..78b2d761
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/tasks/kernel_cfuse_workunits_dbench_iozone.yaml
@@ -0,0 +1,18 @@
+tasks:
+- parallel:
+ - user-workload
+ - kclient-workload
+user-workload:
+ sequential:
+ - ceph-fuse: [client.0]
+ - workunit:
+ clients:
+ client.0:
+ - suites/iozone.sh
+kclient-workload:
+ sequential:
+ - kclient: [client.1]
+ - workunit:
+ clients:
+ client.1:
+ - suites/dbench.sh
diff --git a/qa/suites/kcephfs/mixed-clients/tasks/kernel_cfuse_workunits_untarbuild_blogbench.yaml b/qa/suites/kcephfs/mixed-clients/tasks/kernel_cfuse_workunits_untarbuild_blogbench.yaml
new file mode 100644
index 00000000..d637ff98
--- /dev/null
+++ b/qa/suites/kcephfs/mixed-clients/tasks/kernel_cfuse_workunits_untarbuild_blogbench.yaml
@@ -0,0 +1,18 @@
+tasks:
+- parallel:
+ - user-workload
+ - kclient-workload
+user-workload:
+ sequential:
+ - ceph-fuse: [client.0]
+ - workunit:
+ clients:
+ client.0:
+ - suites/blogbench.sh
+kclient-workload:
+ sequential:
+ - kclient: [client.1]
+ - workunit:
+ clients:
+ client.1:
+ - kernel_untar_build.sh
diff --git a/qa/suites/kcephfs/recovery/% b/qa/suites/kcephfs/recovery/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/%
diff --git a/qa/suites/kcephfs/recovery/.qa b/qa/suites/kcephfs/recovery/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/begin.yaml b/qa/suites/kcephfs/recovery/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/clusters/.qa b/qa/suites/kcephfs/recovery/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/clusters/1-mds-4-client.yaml b/qa/suites/kcephfs/recovery/clusters/1-mds-4-client.yaml
new file mode 120000
index 00000000..65b01b41
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/clusters/1-mds-4-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-4-client.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/conf b/qa/suites/kcephfs/recovery/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/kclient b/qa/suites/kcephfs/recovery/kclient
new file mode 120000
index 00000000..22f94e15
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/kclient
@@ -0,0 +1 @@
+.qa/cephfs/mount/kclient/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/objectstore-ec b/qa/suites/kcephfs/recovery/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/overrides/+ b/qa/suites/kcephfs/recovery/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/overrides/+
diff --git a/qa/suites/kcephfs/recovery/overrides/.qa b/qa/suites/kcephfs/recovery/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/overrides/frag_enable.yaml b/qa/suites/kcephfs/recovery/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/overrides/log-config.yaml b/qa/suites/kcephfs/recovery/overrides/log-config.yaml
new file mode 120000
index 00000000..d955aa5b
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/overrides/log-config.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/log-config.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/overrides/osd-asserts.yaml b/qa/suites/kcephfs/recovery/overrides/osd-asserts.yaml
new file mode 120000
index 00000000..f290c749
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/overrides/osd-asserts.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/osd-asserts.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/overrides/whitelist_health.yaml b/qa/suites/kcephfs/recovery/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/kcephfs/recovery/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/tasks/.qa b/qa/suites/kcephfs/recovery/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/recovery/tasks/auto-repair.yaml b/qa/suites/kcephfs/recovery/tasks/auto-repair.yaml
new file mode 100644
index 00000000..90d0e7bc
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/auto-repair.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - force file system read-only
+ - bad backtrace
+ - MDS in read-only mode
+ - \(MDS_READ_ONLY\)
+
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_auto_repair
diff --git a/qa/suites/kcephfs/recovery/tasks/backtrace.yaml b/qa/suites/kcephfs/recovery/tasks/backtrace.yaml
new file mode 100644
index 00000000..d740a5f6
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/backtrace.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_backtrace
diff --git a/qa/suites/kcephfs/recovery/tasks/client-limits.yaml b/qa/suites/kcephfs/recovery/tasks/client-limits.yaml
new file mode 100644
index 00000000..f816cee9
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/client-limits.yaml
@@ -0,0 +1,20 @@
+
+overrides:
+ ceph:
+ log-whitelist:
+ - responding to mclientcaps\(revoke\)
+ - not advance its oldest_client_tid
+ - failing to advance its oldest client/flush tid
+ - Too many inodes in cache
+ - failing to respond to cache pressure
+ - slow requests are blocked
+ - failing to respond to capability release
+ - MDS cache is too large
+ - \(MDS_CLIENT_OLDEST_TID\)
+ - \(MDS_CACHE_OVERSIZED\)
+
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_client_limits
diff --git a/qa/suites/kcephfs/recovery/tasks/client-recovery.yaml b/qa/suites/kcephfs/recovery/tasks/client-recovery.yaml
new file mode 100644
index 00000000..725a259d
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/client-recovery.yaml
@@ -0,0 +1,15 @@
+
+# The task interferes with the network, so we need
+# to permit OSDs to complain about that.
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - slow request
+ - evicting unresponsive client
+
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_client_recovery
diff --git a/qa/suites/kcephfs/recovery/tasks/damage.yaml b/qa/suites/kcephfs/recovery/tasks/damage.yaml
new file mode 100644
index 00000000..9ae738f0
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/damage.yaml
@@ -0,0 +1,27 @@
+
+overrides:
+ ceph:
+ log-whitelist:
+ - bad backtrace
+ - object missing on disk
+ - error reading table object
+ - error reading sessionmap
+ - Error loading MDS rank
+ - missing journal object
+ - Error recovering journal
+ - error decoding table object
+ - failed to read JournalPointer
+ - Corrupt directory entry
+ - Corrupt fnode header
+ - corrupt sessionmap header
+ - Corrupt dentry
+ - Scrub error on inode
+ - Metadata damage detected
+ - MDS_READ_ONLY
+ - force file system read-only
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_damage
+
diff --git a/qa/suites/kcephfs/recovery/tasks/data-scan.yaml b/qa/suites/kcephfs/recovery/tasks/data-scan.yaml
new file mode 100644
index 00000000..8a05e22a
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/data-scan.yaml
@@ -0,0 +1,19 @@
+
+overrides:
+ ceph:
+ log-whitelist:
+ - bad backtrace
+ - object missing on disk
+ - error reading table object
+ - error reading sessionmap
+ - unmatched fragstat
+ - was unreadable, recreating it now
+ - Scrub error on inode
+ - Metadata damage detected
+ - inconsistent rstat on inode
+ - Error recovering journal
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_data_scan
diff --git a/qa/suites/kcephfs/recovery/tasks/failover.yaml b/qa/suites/kcephfs/recovery/tasks/failover.yaml
new file mode 100644
index 00000000..ab7b4d37
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/failover.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - not responding, replacing
+ - \(MDS_INSUFFICIENT_STANDBY\)
+ - \(MDS_ALL_DOWN\)
+ - \(MDS_UP_LESS_THAN_MAX\)
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_failover
diff --git a/qa/suites/kcephfs/recovery/tasks/forward-scrub.yaml b/qa/suites/kcephfs/recovery/tasks/forward-scrub.yaml
new file mode 100644
index 00000000..b92cf105
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/forward-scrub.yaml
@@ -0,0 +1,14 @@
+
+overrides:
+ ceph:
+ log-whitelist:
+ - inode wrongly marked free
+ - bad backtrace on inode
+ - inode table repaired for inode
+ - Scrub error on inode
+ - Metadata damage detected
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_forward_scrub
diff --git a/qa/suites/kcephfs/recovery/tasks/journal-repair.yaml b/qa/suites/kcephfs/recovery/tasks/journal-repair.yaml
new file mode 100644
index 00000000..66f819d0
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/journal-repair.yaml
@@ -0,0 +1,14 @@
+
+overrides:
+ ceph:
+ log-whitelist:
+ - bad backtrace on directory inode
+ - error reading table object
+ - Metadata damage detected
+ - slow requests are blocked
+ - Behind on trimming
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_journal_repair
diff --git a/qa/suites/kcephfs/recovery/tasks/mds-flush.yaml b/qa/suites/kcephfs/recovery/tasks/mds-flush.yaml
new file mode 100644
index 00000000..d59a8ad5
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/mds-flush.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_flush
diff --git a/qa/suites/kcephfs/recovery/tasks/mds-full.yaml b/qa/suites/kcephfs/recovery/tasks/mds-full.yaml
new file mode 100644
index 00000000..e9744e71
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/mds-full.yaml
@@ -0,0 +1,29 @@
+
+overrides:
+ ceph:
+ cephfs_ec_profile:
+ - disabled
+ log-whitelist:
+ - OSD full dropping all updates
+ - OSD near full
+ - pausewr flag
+ - failsafe engaged, dropping updates
+ - failsafe disengaged, no longer dropping
+ - is full \(reached quota
+ - POOL_FULL
+ - POOL_BACKFILLFULL
+ conf:
+ mon:
+ mon osd nearfull ratio: 0.6
+ mon osd backfillfull ratio: 0.6
+ mon osd full ratio: 0.7
+ osd:
+ osd mon report interval: 5
+ osd objectstore: memstore
+ osd failsafe full ratio: 1.0
+ memstore device bytes: 200000000
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_full
diff --git a/qa/suites/kcephfs/recovery/tasks/pool-perm.yaml b/qa/suites/kcephfs/recovery/tasks/pool-perm.yaml
new file mode 100644
index 00000000..f220626d
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/pool-perm.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_pool_perm
diff --git a/qa/suites/kcephfs/recovery/tasks/sessionmap.yaml b/qa/suites/kcephfs/recovery/tasks/sessionmap.yaml
new file mode 100644
index 00000000..88ae6019
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/sessionmap.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - client session with non-allowable root
+
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_sessionmap
diff --git a/qa/suites/kcephfs/recovery/tasks/strays.yaml b/qa/suites/kcephfs/recovery/tasks/strays.yaml
new file mode 100644
index 00000000..2809fc14
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/strays.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_strays
diff --git a/qa/suites/kcephfs/recovery/tasks/volume-client.yaml b/qa/suites/kcephfs/recovery/tasks/volume-client.yaml
new file mode 100644
index 00000000..9ecaaf4f
--- /dev/null
+++ b/qa/suites/kcephfs/recovery/tasks/volume-client.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - MON_DOWN
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_volume_client
diff --git a/qa/suites/kcephfs/thrash/% b/qa/suites/kcephfs/thrash/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/%
diff --git a/qa/suites/kcephfs/thrash/.qa b/qa/suites/kcephfs/thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/begin.yaml b/qa/suites/kcephfs/thrash/begin.yaml
new file mode 120000
index 00000000..311d404f
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/clusters/.qa b/qa/suites/kcephfs/thrash/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/clusters/1-mds-1-client.yaml b/qa/suites/kcephfs/thrash/clusters/1-mds-1-client.yaml
new file mode 120000
index 00000000..64bdb79f
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/clusters/1-mds-1-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-1-client.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/conf b/qa/suites/kcephfs/thrash/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/kclient b/qa/suites/kcephfs/thrash/kclient
new file mode 120000
index 00000000..22f94e15
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/kclient
@@ -0,0 +1 @@
+.qa/cephfs/mount/kclient/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/objectstore-ec b/qa/suites/kcephfs/thrash/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/overrides/+ b/qa/suites/kcephfs/thrash/overrides/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/overrides/+
diff --git a/qa/suites/kcephfs/thrash/overrides/.qa b/qa/suites/kcephfs/thrash/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/overrides/frag_enable.yaml b/qa/suites/kcephfs/thrash/overrides/frag_enable.yaml
new file mode 120000
index 00000000..34a39a36
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/overrides/frag_enable.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag_enable.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/overrides/log-config.yaml b/qa/suites/kcephfs/thrash/overrides/log-config.yaml
new file mode 120000
index 00000000..d955aa5b
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/overrides/log-config.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/log-config.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/overrides/osd-asserts.yaml b/qa/suites/kcephfs/thrash/overrides/osd-asserts.yaml
new file mode 120000
index 00000000..f290c749
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/overrides/osd-asserts.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/osd-asserts.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/overrides/thrash-health-whitelist.yaml b/qa/suites/kcephfs/thrash/overrides/thrash-health-whitelist.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/overrides/thrash-health-whitelist.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/overrides/whitelist_health.yaml b/qa/suites/kcephfs/thrash/overrides/whitelist_health.yaml
new file mode 120000
index 00000000..74f39a49
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/overrides/whitelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/overrides/whitelist_wrongly_marked_down.yaml b/qa/suites/kcephfs/thrash/overrides/whitelist_wrongly_marked_down.yaml
new file mode 120000
index 00000000..b4528c0f
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/overrides/whitelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/whitelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/thrashers/.qa b/qa/suites/kcephfs/thrash/thrashers/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/thrashers/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/thrashers/default.yaml b/qa/suites/kcephfs/thrash/thrashers/default.yaml
new file mode 100644
index 00000000..1829619b
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/thrashers/default.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+tasks:
+- thrashosds:
diff --git a/qa/suites/kcephfs/thrash/thrashers/mds.yaml b/qa/suites/kcephfs/thrash/thrashers/mds.yaml
new file mode 100644
index 00000000..ce87575c
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/thrashers/mds.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - not responding, replacing
+
+tasks:
+- mds_thrash:
diff --git a/qa/suites/kcephfs/thrash/thrashers/mon.yaml b/qa/suites/kcephfs/thrash/thrashers/mon.yaml
new file mode 100644
index 00000000..d72a99cb
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/thrashers/mon.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - \(MON_DOWN\)
+
+tasks:
+- mon_thrash:
+ revive_delay: 20
+ thrash_delay: 1
diff --git a/qa/suites/kcephfs/thrash/workloads/.qa b/qa/suites/kcephfs/thrash/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/kcephfs/thrash/workloads/kclient_workunit_suites_ffsb.yaml b/qa/suites/kcephfs/thrash/workloads/kclient_workunit_suites_ffsb.yaml
new file mode 100644
index 00000000..53e74bea
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/workloads/kclient_workunit_suites_ffsb.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - SLOW_OPS
+ - slow request
+ conf:
+ osd:
+ filestore flush min: 0
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/ffsb.sh
diff --git a/qa/suites/kcephfs/thrash/workloads/kclient_workunit_suites_iozone.yaml b/qa/suites/kcephfs/thrash/workloads/kclient_workunit_suites_iozone.yaml
new file mode 100644
index 00000000..9270f3c5
--- /dev/null
+++ b/qa/suites/kcephfs/thrash/workloads/kclient_workunit_suites_iozone.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/iozone.sh
diff --git a/qa/suites/krbd/.qa b/qa/suites/krbd/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/basic/% b/qa/suites/krbd/basic/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/krbd/basic/%
diff --git a/qa/suites/krbd/basic/.qa b/qa/suites/krbd/basic/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/basic/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/basic/bluestore-bitmap.yaml b/qa/suites/krbd/basic/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/krbd/basic/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/basic/ceph/.qa b/qa/suites/krbd/basic/ceph/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/basic/ceph/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/basic/ceph/ceph.yaml b/qa/suites/krbd/basic/ceph/ceph.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/krbd/basic/ceph/ceph.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/krbd/basic/clusters/.qa b/qa/suites/krbd/basic/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/basic/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/basic/clusters/fixed-1.yaml b/qa/suites/krbd/basic/clusters/fixed-1.yaml
new file mode 120000
index 00000000..02df5dd0
--- /dev/null
+++ b/qa/suites/krbd/basic/clusters/fixed-1.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-1.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/basic/conf.yaml b/qa/suites/krbd/basic/conf.yaml
new file mode 100644
index 00000000..5e7ed992
--- /dev/null
+++ b/qa/suites/krbd/basic/conf.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+ client:
+ rbd default features: 37
diff --git a/qa/suites/krbd/basic/ms_mode/.qa b/qa/suites/krbd/basic/ms_mode/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/basic/ms_mode/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/basic/ms_mode/crc.yaml b/qa/suites/krbd/basic/ms_mode/crc.yaml
new file mode 100644
index 00000000..3b072578
--- /dev/null
+++ b/qa/suites/krbd/basic/ms_mode/crc.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=crc
diff --git a/qa/suites/krbd/basic/ms_mode/legacy.yaml b/qa/suites/krbd/basic/ms_mode/legacy.yaml
new file mode 100644
index 00000000..0048dcb0
--- /dev/null
+++ b/qa/suites/krbd/basic/ms_mode/legacy.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=legacy
diff --git a/qa/suites/krbd/basic/ms_mode/secure.yaml b/qa/suites/krbd/basic/ms_mode/secure.yaml
new file mode 100644
index 00000000..a735db18
--- /dev/null
+++ b/qa/suites/krbd/basic/ms_mode/secure.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=secure
diff --git a/qa/suites/krbd/basic/tasks/.qa b/qa/suites/krbd/basic/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/basic/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/basic/tasks/krbd_deep_flatten.yaml b/qa/suites/krbd/basic/tasks/krbd_deep_flatten.yaml
new file mode 100644
index 00000000..a821b73a
--- /dev/null
+++ b/qa/suites/krbd/basic/tasks/krbd_deep_flatten.yaml
@@ -0,0 +1,5 @@
+tasks:
+- cram:
+ clients:
+ client.0:
+ - qa/rbd/krbd_deep_flatten.t
diff --git a/qa/suites/krbd/basic/tasks/krbd_discard.yaml b/qa/suites/krbd/basic/tasks/krbd_discard.yaml
new file mode 100644
index 00000000..59ec5b94
--- /dev/null
+++ b/qa/suites/krbd/basic/tasks/krbd_discard.yaml
@@ -0,0 +1,9 @@
+tasks:
+- cram:
+ clients:
+ client.0:
+ - qa/rbd/krbd_discard.t
+ - qa/rbd/krbd_discard_512b.t
+ - qa/rbd/krbd_discard_4M.t
+ - qa/rbd/krbd_zeroout.t
+ - qa/rbd/krbd_discard_granularity.t
diff --git a/qa/suites/krbd/basic/tasks/krbd_huge_image.yaml b/qa/suites/krbd/basic/tasks/krbd_huge_image.yaml
new file mode 100644
index 00000000..15ff033c
--- /dev/null
+++ b/qa/suites/krbd/basic/tasks/krbd_huge_image.yaml
@@ -0,0 +1,5 @@
+tasks:
+- cram:
+ clients:
+ client.0:
+ - qa/rbd/krbd_huge_image.t
diff --git a/qa/suites/krbd/basic/tasks/krbd_msgr_segments.yaml b/qa/suites/krbd/basic/tasks/krbd_msgr_segments.yaml
new file mode 100644
index 00000000..cfa524e7
--- /dev/null
+++ b/qa/suites/krbd/basic/tasks/krbd_msgr_segments.yaml
@@ -0,0 +1,5 @@
+tasks:
+- cram:
+ clients:
+ client.0:
+ - qa/rbd/krbd_msgr_segments.t
diff --git a/qa/suites/krbd/basic/tasks/krbd_parent_overlap.yaml b/qa/suites/krbd/basic/tasks/krbd_parent_overlap.yaml
new file mode 100644
index 00000000..9bcf1fa3
--- /dev/null
+++ b/qa/suites/krbd/basic/tasks/krbd_parent_overlap.yaml
@@ -0,0 +1,5 @@
+tasks:
+- cram:
+ clients:
+ client.0:
+ - qa/rbd/krbd_parent_overlap.t
diff --git a/qa/suites/krbd/basic/tasks/krbd_read_only.yaml b/qa/suites/krbd/basic/tasks/krbd_read_only.yaml
new file mode 100644
index 00000000..8194b89c
--- /dev/null
+++ b/qa/suites/krbd/basic/tasks/krbd_read_only.yaml
@@ -0,0 +1,6 @@
+tasks:
+- cram:
+ clients:
+ client.0:
+ - qa/rbd/krbd_blkroset.t
+ - qa/rbd/krbd_get_features.t
diff --git a/qa/suites/krbd/basic/tasks/krbd_whole_object_zeroout.yaml b/qa/suites/krbd/basic/tasks/krbd_whole_object_zeroout.yaml
new file mode 100644
index 00000000..3b0ff8d1
--- /dev/null
+++ b/qa/suites/krbd/basic/tasks/krbd_whole_object_zeroout.yaml
@@ -0,0 +1,5 @@
+tasks:
+- cram:
+ clients:
+ client.0:
+ - qa/rbd/krbd_whole_object_zeroout.t
diff --git a/qa/suites/krbd/fsx/% b/qa/suites/krbd/fsx/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/krbd/fsx/%
diff --git a/qa/suites/krbd/fsx/.qa b/qa/suites/krbd/fsx/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/fsx/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/ceph/.qa b/qa/suites/krbd/fsx/ceph/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/fsx/ceph/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/ceph/ceph.yaml b/qa/suites/krbd/fsx/ceph/ceph.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/krbd/fsx/ceph/ceph.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/krbd/fsx/clusters/.qa b/qa/suites/krbd/fsx/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/fsx/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/clusters/3-node.yaml b/qa/suites/krbd/fsx/clusters/3-node.yaml
new file mode 100644
index 00000000..0433ec9b
--- /dev/null
+++ b/qa/suites/krbd/fsx/clusters/3-node.yaml
@@ -0,0 +1,14 @@
+# fixed-3.yaml, but with two additional clients on the same target
+roles:
+- [mon.a, mon.c, mgr.x, osd.0, osd.1, osd.2, osd.3]
+- [mon.b, mgr.y, osd.4, osd.5, osd.6, osd.7]
+- [client.0, client.1, client.2]
+openstack:
+- volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd shutdown pgref assert: true
diff --git a/qa/suites/krbd/fsx/conf.yaml b/qa/suites/krbd/fsx/conf.yaml
new file mode 100644
index 00000000..30da870b
--- /dev/null
+++ b/qa/suites/krbd/fsx/conf.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
diff --git a/qa/suites/krbd/fsx/ms_mode$/.qa b/qa/suites/krbd/fsx/ms_mode$/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/fsx/ms_mode$/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/ms_mode$/crc.yaml b/qa/suites/krbd/fsx/ms_mode$/crc.yaml
new file mode 100644
index 00000000..3b072578
--- /dev/null
+++ b/qa/suites/krbd/fsx/ms_mode$/crc.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=crc
diff --git a/qa/suites/krbd/fsx/ms_mode$/legacy.yaml b/qa/suites/krbd/fsx/ms_mode$/legacy.yaml
new file mode 100644
index 00000000..0048dcb0
--- /dev/null
+++ b/qa/suites/krbd/fsx/ms_mode$/legacy.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=legacy
diff --git a/qa/suites/krbd/fsx/ms_mode$/prefer-crc.yaml b/qa/suites/krbd/fsx/ms_mode$/prefer-crc.yaml
new file mode 100644
index 00000000..1054473a
--- /dev/null
+++ b/qa/suites/krbd/fsx/ms_mode$/prefer-crc.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=prefer-crc
diff --git a/qa/suites/krbd/fsx/ms_mode$/secure.yaml b/qa/suites/krbd/fsx/ms_mode$/secure.yaml
new file mode 100644
index 00000000..a735db18
--- /dev/null
+++ b/qa/suites/krbd/fsx/ms_mode$/secure.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=secure
diff --git a/qa/suites/krbd/fsx/objectstore/.qa b/qa/suites/krbd/fsx/objectstore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/fsx/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/objectstore/bluestore-bitmap.yaml b/qa/suites/krbd/fsx/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/krbd/fsx/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/objectstore/filestore-xfs.yaml b/qa/suites/krbd/fsx/objectstore/filestore-xfs.yaml
new file mode 120000
index 00000000..41f2a9d1
--- /dev/null
+++ b/qa/suites/krbd/fsx/objectstore/filestore-xfs.yaml
@@ -0,0 +1 @@
+.qa/objectstore/filestore-xfs.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/striping/.qa b/qa/suites/krbd/fsx/striping/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/fsx/striping/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/striping/default/% b/qa/suites/krbd/fsx/striping/default/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/krbd/fsx/striping/default/%
diff --git a/qa/suites/krbd/fsx/striping/default/.qa b/qa/suites/krbd/fsx/striping/default/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/fsx/striping/default/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/striping/default/msgr-failures/.qa b/qa/suites/krbd/fsx/striping/default/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/fsx/striping/default/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/striping/default/msgr-failures/few.yaml b/qa/suites/krbd/fsx/striping/default/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/krbd/fsx/striping/default/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/krbd/fsx/striping/default/msgr-failures/many.yaml b/qa/suites/krbd/fsx/striping/default/msgr-failures/many.yaml
new file mode 100644
index 00000000..4caedaeb
--- /dev/null
+++ b/qa/suites/krbd/fsx/striping/default/msgr-failures/many.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 500
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/krbd/fsx/striping/default/randomized-striping-off.yaml b/qa/suites/krbd/fsx/striping/default/randomized-striping-off.yaml
new file mode 100644
index 00000000..0bf96a8d
--- /dev/null
+++ b/qa/suites/krbd/fsx/striping/default/randomized-striping-off.yaml
@@ -0,0 +1,3 @@
+overrides:
+ rbd_fsx:
+ randomized_striping: false
diff --git a/qa/suites/krbd/fsx/striping/fancy/% b/qa/suites/krbd/fsx/striping/fancy/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/krbd/fsx/striping/fancy/%
diff --git a/qa/suites/krbd/fsx/striping/fancy/.qa b/qa/suites/krbd/fsx/striping/fancy/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/fsx/striping/fancy/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/striping/fancy/msgr-failures/.qa b/qa/suites/krbd/fsx/striping/fancy/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/fsx/striping/fancy/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/striping/fancy/msgr-failures/few.yaml b/qa/suites/krbd/fsx/striping/fancy/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/krbd/fsx/striping/fancy/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/krbd/fsx/striping/fancy/randomized-striping-on.yaml b/qa/suites/krbd/fsx/striping/fancy/randomized-striping-on.yaml
new file mode 100644
index 00000000..c2823e4e
--- /dev/null
+++ b/qa/suites/krbd/fsx/striping/fancy/randomized-striping-on.yaml
@@ -0,0 +1,3 @@
+overrides:
+ rbd_fsx:
+ randomized_striping: true
diff --git a/qa/suites/krbd/fsx/tasks/.qa b/qa/suites/krbd/fsx/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/fsx/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/fsx/tasks/fsx-1-client.yaml b/qa/suites/krbd/fsx/tasks/fsx-1-client.yaml
new file mode 100644
index 00000000..b0af9829
--- /dev/null
+++ b/qa/suites/krbd/fsx/tasks/fsx-1-client.yaml
@@ -0,0 +1,10 @@
+tasks:
+- rbd_fsx:
+ clients: [client.0]
+ ops: 20000
+ krbd: true
+ readbdy: 512
+ writebdy: 512
+ truncbdy: 512
+ holebdy: 512
+ punch_holes: true
diff --git a/qa/suites/krbd/fsx/tasks/fsx-3-client.yaml b/qa/suites/krbd/fsx/tasks/fsx-3-client.yaml
new file mode 100644
index 00000000..5b8e3701
--- /dev/null
+++ b/qa/suites/krbd/fsx/tasks/fsx-3-client.yaml
@@ -0,0 +1,10 @@
+tasks:
+- rbd_fsx:
+ clients: [client.0, client.1, client.2]
+ ops: 10000
+ krbd: true
+ readbdy: 512
+ writebdy: 512
+ truncbdy: 512
+ holebdy: 512
+ punch_holes: true
diff --git a/qa/suites/krbd/rbd-nomount/% b/qa/suites/krbd/rbd-nomount/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/%
diff --git a/qa/suites/krbd/rbd-nomount/.qa b/qa/suites/krbd/rbd-nomount/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/rbd-nomount/bluestore-bitmap.yaml b/qa/suites/krbd/rbd-nomount/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/rbd-nomount/clusters/.qa b/qa/suites/krbd/rbd-nomount/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/rbd-nomount/clusters/fixed-3.yaml b/qa/suites/krbd/rbd-nomount/clusters/fixed-3.yaml
new file mode 120000
index 00000000..f75a848b
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/clusters/fixed-3.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-3.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/rbd-nomount/conf.yaml b/qa/suites/krbd/rbd-nomount/conf.yaml
new file mode 100644
index 00000000..5e7ed992
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/conf.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+ client:
+ rbd default features: 37
diff --git a/qa/suites/krbd/rbd-nomount/install/.qa b/qa/suites/krbd/rbd-nomount/install/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/install/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/rbd-nomount/install/ceph.yaml b/qa/suites/krbd/rbd-nomount/install/ceph.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/install/ceph.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/krbd/rbd-nomount/ms_mode/.qa b/qa/suites/krbd/rbd-nomount/ms_mode/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/ms_mode/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/rbd-nomount/ms_mode/crc.yaml b/qa/suites/krbd/rbd-nomount/ms_mode/crc.yaml
new file mode 100644
index 00000000..3b072578
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/ms_mode/crc.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=crc
diff --git a/qa/suites/krbd/rbd-nomount/ms_mode/legacy.yaml b/qa/suites/krbd/rbd-nomount/ms_mode/legacy.yaml
new file mode 100644
index 00000000..0048dcb0
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/ms_mode/legacy.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=legacy
diff --git a/qa/suites/krbd/rbd-nomount/ms_mode/secure.yaml b/qa/suites/krbd/rbd-nomount/ms_mode/secure.yaml
new file mode 100644
index 00000000..a735db18
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/ms_mode/secure.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=secure
diff --git a/qa/suites/krbd/rbd-nomount/msgr-failures/.qa b/qa/suites/krbd/rbd-nomount/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/rbd-nomount/msgr-failures/few.yaml b/qa/suites/krbd/rbd-nomount/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/krbd/rbd-nomount/msgr-failures/many.yaml b/qa/suites/krbd/rbd-nomount/msgr-failures/many.yaml
new file mode 100644
index 00000000..4caedaeb
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/msgr-failures/many.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 500
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/krbd/rbd-nomount/tasks/.qa b/qa/suites/krbd/rbd-nomount/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/rbd-nomount/tasks/krbd_data_pool.yaml b/qa/suites/krbd/rbd-nomount/tasks/krbd_data_pool.yaml
new file mode 100644
index 00000000..35b9d67e
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/krbd_data_pool.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/krbd_data_pool.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/krbd_exclusive_option.yaml b/qa/suites/krbd/rbd-nomount/tasks/krbd_exclusive_option.yaml
new file mode 100644
index 00000000..567deebf
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/krbd_exclusive_option.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/krbd_exclusive_option.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/krbd_fallocate.yaml b/qa/suites/krbd/rbd-nomount/tasks/krbd_fallocate.yaml
new file mode 100644
index 00000000..a7286982
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/krbd_fallocate.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/krbd_fallocate.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/krbd_latest_osdmap_on_map.yaml b/qa/suites/krbd/rbd-nomount/tasks/krbd_latest_osdmap_on_map.yaml
new file mode 100644
index 00000000..522be6a4
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/krbd_latest_osdmap_on_map.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/krbd_latest_osdmap_on_map.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/krbd_namespaces.yaml b/qa/suites/krbd/rbd-nomount/tasks/krbd_namespaces.yaml
new file mode 100644
index 00000000..4d6519a2
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/krbd_namespaces.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/krbd_namespaces.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_enumerate.yaml b/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_enumerate.yaml
new file mode 100644
index 00000000..c326507a
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_enumerate.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/krbd_udev_enumerate.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_netlink_enobufs.yaml b/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_netlink_enobufs.yaml
new file mode 100644
index 00000000..b0530d52
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_netlink_enobufs.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - pauserd,pausewr flag\(s\) set
+
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/krbd_udev_netlink_enobufs.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_netns.yaml b/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_netns.yaml
new file mode 100644
index 00000000..21e06e38
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_netns.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/krbd_udev_netns.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_symlinks.yaml b/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_symlinks.yaml
new file mode 100644
index 00000000..ee79932f
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_symlinks.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/krbd_udev_symlinks.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/rbd_concurrent.yaml b/qa/suites/krbd/rbd-nomount/tasks/rbd_concurrent.yaml
new file mode 100644
index 00000000..675b98e7
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/rbd_concurrent.yaml
@@ -0,0 +1,10 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/concurrent.sh
+# Options for rbd/concurrent.sh (default values shown)
+# env:
+# RBD_CONCURRENT_ITER: 100
+# RBD_CONCURRENT_COUNT: 5
+# RBD_CONCURRENT_DELAY: 5
diff --git a/qa/suites/krbd/rbd-nomount/tasks/rbd_huge_tickets.yaml b/qa/suites/krbd/rbd-nomount/tasks/rbd_huge_tickets.yaml
new file mode 100644
index 00000000..ea421eec
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/rbd_huge_tickets.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/huge-tickets.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/rbd_image_read.yaml b/qa/suites/krbd/rbd-nomount/tasks/rbd_image_read.yaml
new file mode 100644
index 00000000..e5017e11
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/rbd_image_read.yaml
@@ -0,0 +1,15 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/image_read.sh
+# Options for rbd/image_read.sh (default values shown)
+# env:
+# IMAGE_READ_LOCAL_FILES: 'false'
+# IMAGE_READ_FORMAT: '2'
+# IMAGE_READ_VERBOSE: 'true'
+# IMAGE_READ_PAGE_SIZE: '4096'
+# IMAGE_READ_OBJECT_ORDER: '22'
+# IMAGE_READ_TEST_CLONES: 'true'
+# IMAGE_READ_DOUBLE_ORDER: 'true'
+# IMAGE_READ_HALF_ORDER: 'false'
diff --git a/qa/suites/krbd/rbd-nomount/tasks/rbd_kernel.yaml b/qa/suites/krbd/rbd-nomount/tasks/rbd_kernel.yaml
new file mode 100644
index 00000000..aa155827
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/rbd_kernel.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/kernel.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/rbd_map_snapshot_io.yaml b/qa/suites/krbd/rbd-nomount/tasks/rbd_map_snapshot_io.yaml
new file mode 100644
index 00000000..c1529398
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/rbd_map_snapshot_io.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/map-snapshot-io.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/rbd_map_unmap.yaml b/qa/suites/krbd/rbd-nomount/tasks/rbd_map_unmap.yaml
new file mode 100644
index 00000000..c2160997
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/rbd_map_unmap.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/map-unmap.sh
diff --git a/qa/suites/krbd/rbd-nomount/tasks/rbd_simple_big.yaml b/qa/suites/krbd/rbd-nomount/tasks/rbd_simple_big.yaml
new file mode 100644
index 00000000..c493cfaf
--- /dev/null
+++ b/qa/suites/krbd/rbd-nomount/tasks/rbd_simple_big.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/simple_big.sh
+
diff --git a/qa/suites/krbd/rbd/% b/qa/suites/krbd/rbd/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/krbd/rbd/%
diff --git a/qa/suites/krbd/rbd/.qa b/qa/suites/krbd/rbd/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/rbd/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/rbd/bluestore-bitmap.yaml b/qa/suites/krbd/rbd/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/krbd/rbd/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/rbd/clusters/.qa b/qa/suites/krbd/rbd/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/rbd/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/rbd/clusters/fixed-3.yaml b/qa/suites/krbd/rbd/clusters/fixed-3.yaml
new file mode 120000
index 00000000..f75a848b
--- /dev/null
+++ b/qa/suites/krbd/rbd/clusters/fixed-3.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-3.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/rbd/conf.yaml b/qa/suites/krbd/rbd/conf.yaml
new file mode 100644
index 00000000..5e7ed992
--- /dev/null
+++ b/qa/suites/krbd/rbd/conf.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+ client:
+ rbd default features: 37
diff --git a/qa/suites/krbd/rbd/ms_mode/.qa b/qa/suites/krbd/rbd/ms_mode/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/rbd/ms_mode/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/rbd/ms_mode/crc.yaml b/qa/suites/krbd/rbd/ms_mode/crc.yaml
new file mode 100644
index 00000000..3b072578
--- /dev/null
+++ b/qa/suites/krbd/rbd/ms_mode/crc.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=crc
diff --git a/qa/suites/krbd/rbd/ms_mode/legacy.yaml b/qa/suites/krbd/rbd/ms_mode/legacy.yaml
new file mode 100644
index 00000000..0048dcb0
--- /dev/null
+++ b/qa/suites/krbd/rbd/ms_mode/legacy.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=legacy
diff --git a/qa/suites/krbd/rbd/ms_mode/secure.yaml b/qa/suites/krbd/rbd/ms_mode/secure.yaml
new file mode 100644
index 00000000..a735db18
--- /dev/null
+++ b/qa/suites/krbd/rbd/ms_mode/secure.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=secure
diff --git a/qa/suites/krbd/rbd/msgr-failures/.qa b/qa/suites/krbd/rbd/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/rbd/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/rbd/msgr-failures/few.yaml b/qa/suites/krbd/rbd/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/krbd/rbd/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/krbd/rbd/msgr-failures/many.yaml b/qa/suites/krbd/rbd/msgr-failures/many.yaml
new file mode 100644
index 00000000..4caedaeb
--- /dev/null
+++ b/qa/suites/krbd/rbd/msgr-failures/many.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 500
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/krbd/rbd/tasks/.qa b/qa/suites/krbd/rbd/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/rbd/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/rbd/tasks/rbd_fio.yaml b/qa/suites/krbd/rbd/tasks/rbd_fio.yaml
new file mode 100644
index 00000000..01088fa4
--- /dev/null
+++ b/qa/suites/krbd/rbd/tasks/rbd_fio.yaml
@@ -0,0 +1,11 @@
+tasks:
+- install:
+- ceph: null
+- rbd_fio:
+ client.0:
+ fio-io-size: 90%
+ formats: [2]
+ features: [[layering,exclusive-lock]]
+ io-engine: sync
+ rw: randrw
+ runtime: 900
diff --git a/qa/suites/krbd/rbd/tasks/rbd_workunit_kernel_untar_build.yaml b/qa/suites/krbd/rbd/tasks/rbd_workunit_kernel_untar_build.yaml
new file mode 100644
index 00000000..699cde82
--- /dev/null
+++ b/qa/suites/krbd/rbd/tasks/rbd_workunit_kernel_untar_build.yaml
@@ -0,0 +1,12 @@
+tasks:
+- install:
+ extra_system_packages:
+ deb: ['bison', 'flex', 'libelf-dev', 'libssl-dev']
+ rpm: ['bison', 'flex', 'elfutils-libelf-devel', 'openssl-devel']
+- ceph:
+- rbd:
+ all:
+- workunit:
+ clients:
+ all:
+ - kernel_untar_build.sh
diff --git a/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_dbench.yaml b/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_dbench.yaml
new file mode 100644
index 00000000..d779eea2
--- /dev/null
+++ b/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_dbench.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- rbd:
+ all:
+- workunit:
+ clients:
+ all:
+ - suites/dbench.sh
diff --git a/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_ffsb.yaml b/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_ffsb.yaml
new file mode 100644
index 00000000..5204bb87
--- /dev/null
+++ b/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_ffsb.yaml
@@ -0,0 +1,10 @@
+tasks:
+- install:
+- ceph:
+- rbd:
+ all:
+ image_size: 20480
+- workunit:
+ clients:
+ all:
+ - suites/ffsb.sh
diff --git a/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_fsstress.yaml b/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_fsstress.yaml
new file mode 100644
index 00000000..f9d62fef
--- /dev/null
+++ b/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_fsstress.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- rbd:
+ all:
+- workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
diff --git a/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_fsstress_ext4.yaml b/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_fsstress_ext4.yaml
new file mode 100644
index 00000000..f765b74a
--- /dev/null
+++ b/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_fsstress_ext4.yaml
@@ -0,0 +1,10 @@
+tasks:
+- install:
+- ceph:
+- rbd:
+ all:
+ fs_type: ext4
+- workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
diff --git a/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_fsx.yaml b/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_fsx.yaml
new file mode 100644
index 00000000..98c0849c
--- /dev/null
+++ b/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_fsx.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- rbd:
+ all:
+- workunit:
+ clients:
+ all:
+ - suites/fsx.sh
diff --git a/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_iozone.yaml b/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_iozone.yaml
new file mode 100644
index 00000000..eb8f18d6
--- /dev/null
+++ b/qa/suites/krbd/rbd/tasks/rbd_workunit_suites_iozone.yaml
@@ -0,0 +1,10 @@
+tasks:
+- install:
+- ceph:
+- rbd:
+ all:
+ image_size: 20480
+- workunit:
+ clients:
+ all:
+ - suites/iozone.sh
diff --git a/qa/suites/krbd/rbd/tasks/rbd_workunit_trivial_sync.yaml b/qa/suites/krbd/rbd/tasks/rbd_workunit_trivial_sync.yaml
new file mode 100644
index 00000000..7c2796b2
--- /dev/null
+++ b/qa/suites/krbd/rbd/tasks/rbd_workunit_trivial_sync.yaml
@@ -0,0 +1,8 @@
+tasks:
+- install:
+- ceph:
+- rbd:
+ all:
+- workunit:
+ clients:
+ all: [fs/misc/trivial_sync.sh]
diff --git a/qa/suites/krbd/singleton/% b/qa/suites/krbd/singleton/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/krbd/singleton/%
diff --git a/qa/suites/krbd/singleton/.qa b/qa/suites/krbd/singleton/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/singleton/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/singleton/bluestore-bitmap.yaml b/qa/suites/krbd/singleton/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/krbd/singleton/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/singleton/conf.yaml b/qa/suites/krbd/singleton/conf.yaml
new file mode 100644
index 00000000..5e7ed992
--- /dev/null
+++ b/qa/suites/krbd/singleton/conf.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+ client:
+ rbd default features: 37
diff --git a/qa/suites/krbd/singleton/ms_mode$/.qa b/qa/suites/krbd/singleton/ms_mode$/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/singleton/ms_mode$/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/singleton/ms_mode$/crc.yaml b/qa/suites/krbd/singleton/ms_mode$/crc.yaml
new file mode 100644
index 00000000..3b072578
--- /dev/null
+++ b/qa/suites/krbd/singleton/ms_mode$/crc.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=crc
diff --git a/qa/suites/krbd/singleton/ms_mode$/legacy.yaml b/qa/suites/krbd/singleton/ms_mode$/legacy.yaml
new file mode 100644
index 00000000..0048dcb0
--- /dev/null
+++ b/qa/suites/krbd/singleton/ms_mode$/legacy.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=legacy
diff --git a/qa/suites/krbd/singleton/ms_mode$/prefer-crc.yaml b/qa/suites/krbd/singleton/ms_mode$/prefer-crc.yaml
new file mode 100644
index 00000000..1054473a
--- /dev/null
+++ b/qa/suites/krbd/singleton/ms_mode$/prefer-crc.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=prefer-crc
diff --git a/qa/suites/krbd/singleton/ms_mode$/secure.yaml b/qa/suites/krbd/singleton/ms_mode$/secure.yaml
new file mode 100644
index 00000000..a735db18
--- /dev/null
+++ b/qa/suites/krbd/singleton/ms_mode$/secure.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=secure
diff --git a/qa/suites/krbd/singleton/msgr-failures/.qa b/qa/suites/krbd/singleton/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/singleton/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/singleton/msgr-failures/few.yaml b/qa/suites/krbd/singleton/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/krbd/singleton/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/krbd/singleton/msgr-failures/many.yaml b/qa/suites/krbd/singleton/msgr-failures/many.yaml
new file mode 100644
index 00000000..4caedaeb
--- /dev/null
+++ b/qa/suites/krbd/singleton/msgr-failures/many.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 500
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/krbd/singleton/tasks/.qa b/qa/suites/krbd/singleton/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/singleton/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/singleton/tasks/rbd_xfstests.yaml b/qa/suites/krbd/singleton/tasks/rbd_xfstests.yaml
new file mode 100644
index 00000000..c94af020
--- /dev/null
+++ b/qa/suites/krbd/singleton/tasks/rbd_xfstests.yaml
@@ -0,0 +1,38 @@
+roles:
+- [mon.a, mon.c, osd.0, osd.1, osd.2]
+- [mon.b, mgr.x, mds.a, osd.3, osd.4, osd.5]
+- [client.0]
+- [client.1]
+openstack:
+- volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+- rbd.xfstests:
+ client.0: &ref
+ test_image: 'test_image-0'
+ test_size: 5120 # MB
+ scratch_image: 'scratch_image-0'
+ scratch_size: 15360 # MB
+ fs_type: ext4
+ tests: '-g auto -g blockdev -x clone'
+ exclude:
+ - generic/042
+ - generic/392
+ - generic/044
+ - generic/045
+ - generic/046
+ - generic/223
+ - ext4/002 # removed upstream
+ - ext4/304
+ - generic/388
+ - generic/405
+ - generic/422
+ - shared/298 # lockdep false positive
+ randomize: true
+ client.1:
+ <<: *ref
+ test_image: 'test_image-1'
+ scratch_image: 'scratch_image-1'
diff --git a/qa/suites/krbd/thrash/% b/qa/suites/krbd/thrash/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/krbd/thrash/%
diff --git a/qa/suites/krbd/thrash/.qa b/qa/suites/krbd/thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/thrash/bluestore-bitmap.yaml b/qa/suites/krbd/thrash/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/krbd/thrash/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/thrash/ceph/.qa b/qa/suites/krbd/thrash/ceph/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/thrash/ceph/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/thrash/ceph/ceph.yaml b/qa/suites/krbd/thrash/ceph/ceph.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/krbd/thrash/ceph/ceph.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/krbd/thrash/clusters/.qa b/qa/suites/krbd/thrash/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/thrash/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/thrash/clusters/fixed-3.yaml b/qa/suites/krbd/thrash/clusters/fixed-3.yaml
new file mode 120000
index 00000000..f75a848b
--- /dev/null
+++ b/qa/suites/krbd/thrash/clusters/fixed-3.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-3.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/thrash/conf.yaml b/qa/suites/krbd/thrash/conf.yaml
new file mode 100644
index 00000000..5e7ed992
--- /dev/null
+++ b/qa/suites/krbd/thrash/conf.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+ client:
+ rbd default features: 37
diff --git a/qa/suites/krbd/thrash/ms_mode$/.qa b/qa/suites/krbd/thrash/ms_mode$/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/thrash/ms_mode$/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/thrash/ms_mode$/crc.yaml b/qa/suites/krbd/thrash/ms_mode$/crc.yaml
new file mode 100644
index 00000000..3b072578
--- /dev/null
+++ b/qa/suites/krbd/thrash/ms_mode$/crc.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=crc
diff --git a/qa/suites/krbd/thrash/ms_mode$/legacy.yaml b/qa/suites/krbd/thrash/ms_mode$/legacy.yaml
new file mode 100644
index 00000000..0048dcb0
--- /dev/null
+++ b/qa/suites/krbd/thrash/ms_mode$/legacy.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=legacy
diff --git a/qa/suites/krbd/thrash/ms_mode$/prefer-crc.yaml b/qa/suites/krbd/thrash/ms_mode$/prefer-crc.yaml
new file mode 100644
index 00000000..1054473a
--- /dev/null
+++ b/qa/suites/krbd/thrash/ms_mode$/prefer-crc.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=prefer-crc
diff --git a/qa/suites/krbd/thrash/ms_mode$/secure.yaml b/qa/suites/krbd/thrash/ms_mode$/secure.yaml
new file mode 100644
index 00000000..a735db18
--- /dev/null
+++ b/qa/suites/krbd/thrash/ms_mode$/secure.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default map options: ms_mode=secure
diff --git a/qa/suites/krbd/thrash/thrashers/.qa b/qa/suites/krbd/thrash/thrashers/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/thrash/thrashers/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/thrash/thrashers/backoff.yaml b/qa/suites/krbd/thrash/thrashers/backoff.yaml
new file mode 100644
index 00000000..48a7a2a2
--- /dev/null
+++ b/qa/suites/krbd/thrash/thrashers/backoff.yaml
@@ -0,0 +1,15 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd backoff on peering: true
+ osd backoff on degraded: true
+ log-whitelist:
+ - wrongly marked me down
+ - objects unfound and apparently lost
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
diff --git a/qa/suites/krbd/thrash/thrashers/mon-thrasher.yaml b/qa/suites/krbd/thrash/thrashers/mon-thrasher.yaml
new file mode 100644
index 00000000..415684de
--- /dev/null
+++ b/qa/suites/krbd/thrash/thrashers/mon-thrasher.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - \(MON_DOWN\)
+tasks:
+- mon_thrash:
+ revive_delay: 20
+ thrash_delay: 1
diff --git a/qa/suites/krbd/thrash/thrashers/pggrow.yaml b/qa/suites/krbd/thrash/thrashers/pggrow.yaml
new file mode 100644
index 00000000..14346a26
--- /dev/null
+++ b/qa/suites/krbd/thrash/thrashers/pggrow.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 2
+ chance_pgpnum_fix: 1
diff --git a/qa/suites/krbd/thrash/thrashers/upmap.yaml b/qa/suites/krbd/thrash/thrashers/upmap.yaml
new file mode 100644
index 00000000..86b51709
--- /dev/null
+++ b/qa/suites/krbd/thrash/thrashers/upmap.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ crush_tunables: optimal
+ conf:
+ mon:
+ mon osd initial require min compat client: luminous
+ log-whitelist:
+ - wrongly marked me down
+ - objects unfound and apparently lost
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ chance_thrash_pg_upmap: 3
+ chance_thrash_pg_upmap_items: 3
diff --git a/qa/suites/krbd/thrash/thrashosds-health.yaml b/qa/suites/krbd/thrash/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/krbd/thrash/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/thrash/workloads/.qa b/qa/suites/krbd/thrash/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/thrash/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/thrash/workloads/rbd_fio.yaml b/qa/suites/krbd/thrash/workloads/rbd_fio.yaml
new file mode 100644
index 00000000..157210f5
--- /dev/null
+++ b/qa/suites/krbd/thrash/workloads/rbd_fio.yaml
@@ -0,0 +1,11 @@
+tasks:
+- rbd_fio:
+ client.0:
+ fio-io-size: 100%
+ formats: [2]
+ features: [[layering,exclusive-lock]]
+ io-engine: libaio
+ rw: randrw
+ bs: 1024
+ io-depth: 256
+ runtime: 1200
diff --git a/qa/suites/krbd/thrash/workloads/rbd_workunit_suites_ffsb.yaml b/qa/suites/krbd/thrash/workloads/rbd_workunit_suites_ffsb.yaml
new file mode 100644
index 00000000..4ae7d690
--- /dev/null
+++ b/qa/suites/krbd/thrash/workloads/rbd_workunit_suites_ffsb.yaml
@@ -0,0 +1,8 @@
+tasks:
+- rbd:
+ all:
+ image_size: 20480
+- workunit:
+ clients:
+ all:
+ - suites/ffsb.sh
diff --git a/qa/suites/krbd/unmap/% b/qa/suites/krbd/unmap/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/krbd/unmap/%
diff --git a/qa/suites/krbd/unmap/.qa b/qa/suites/krbd/unmap/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/unmap/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/unmap/ceph/.qa b/qa/suites/krbd/unmap/ceph/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/unmap/ceph/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/unmap/ceph/ceph.yaml b/qa/suites/krbd/unmap/ceph/ceph.yaml
new file mode 100644
index 00000000..aee5779f
--- /dev/null
+++ b/qa/suites/krbd/unmap/ceph/ceph.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ crush_tunables: bobtail
+ mon_bind_addrvec: false
+ mon_bind_msgr2: false
+ conf:
+ global:
+ ms bind msgr2: false
+tasks:
+- install:
+- ceph:
+- exec:
+ client.0:
+ - "ceph osd getcrushmap -o /dev/stdout | crushtool -d - | sed -e 's/alg straw2/alg straw/g' | crushtool -c /dev/stdin -o /dev/stdout | ceph osd setcrushmap -i /dev/stdin"
diff --git a/qa/suites/krbd/unmap/clusters/.qa b/qa/suites/krbd/unmap/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/unmap/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/unmap/clusters/separate-client.yaml b/qa/suites/krbd/unmap/clusters/separate-client.yaml
new file mode 100644
index 00000000..be134318
--- /dev/null
+++ b/qa/suites/krbd/unmap/clusters/separate-client.yaml
@@ -0,0 +1,16 @@
+# fixed-1.yaml, but with client.0 on a separate target
+overrides:
+ ceph-deploy:
+ conf:
+ global:
+ osd pool default size: 2
+ osd crush chooseleaf type: 0
+ osd pool default pg num: 128
+ osd pool default pgp num: 128
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2]
+- [client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
diff --git a/qa/suites/krbd/unmap/conf.yaml b/qa/suites/krbd/unmap/conf.yaml
new file mode 100644
index 00000000..8984e8dc
--- /dev/null
+++ b/qa/suites/krbd/unmap/conf.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default features: 1 # pre-single-major is v3.13, so layering only
diff --git a/qa/suites/krbd/unmap/filestore-xfs.yaml b/qa/suites/krbd/unmap/filestore-xfs.yaml
new file mode 120000
index 00000000..41f2a9d1
--- /dev/null
+++ b/qa/suites/krbd/unmap/filestore-xfs.yaml
@@ -0,0 +1 @@
+.qa/objectstore/filestore-xfs.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/unmap/kernels/.qa b/qa/suites/krbd/unmap/kernels/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/unmap/kernels/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/unmap/kernels/pre-single-major.yaml b/qa/suites/krbd/unmap/kernels/pre-single-major.yaml
new file mode 100644
index 00000000..a5636b45
--- /dev/null
+++ b/qa/suites/krbd/unmap/kernels/pre-single-major.yaml
@@ -0,0 +1,10 @@
+overrides:
+ kernel:
+ client.0:
+ branch: nightly_pre-single-major # v3.12.z
+tasks:
+- exec:
+ client.0:
+ - "modprobe -r rbd"
+ - "modprobe --first-time rbd"
+ - "test ! -f /sys/module/rbd/parameters/single_major"
diff --git a/qa/suites/krbd/unmap/kernels/single-major-off.yaml b/qa/suites/krbd/unmap/kernels/single-major-off.yaml
new file mode 100644
index 00000000..9dc2488e
--- /dev/null
+++ b/qa/suites/krbd/unmap/kernels/single-major-off.yaml
@@ -0,0 +1,6 @@
+tasks:
+- exec:
+ client.0:
+ - "modprobe -r rbd"
+ - "modprobe --first-time rbd single_major=0"
+ - "grep -q N /sys/module/rbd/parameters/single_major"
diff --git a/qa/suites/krbd/unmap/kernels/single-major-on.yaml b/qa/suites/krbd/unmap/kernels/single-major-on.yaml
new file mode 100644
index 00000000..c3889f34
--- /dev/null
+++ b/qa/suites/krbd/unmap/kernels/single-major-on.yaml
@@ -0,0 +1,6 @@
+tasks:
+- exec:
+ client.0:
+ - "modprobe -r rbd"
+ - "modprobe --first-time rbd single_major=1"
+ - "grep -q Y /sys/module/rbd/parameters/single_major"
diff --git a/qa/suites/krbd/unmap/tasks/.qa b/qa/suites/krbd/unmap/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/unmap/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/unmap/tasks/unmap.yaml b/qa/suites/krbd/unmap/tasks/unmap.yaml
new file mode 100644
index 00000000..435061b4
--- /dev/null
+++ b/qa/suites/krbd/unmap/tasks/unmap.yaml
@@ -0,0 +1,5 @@
+tasks:
+- cram:
+ clients:
+ client.0:
+ - src/test/cli-integration/rbd/unmap.t
diff --git a/qa/suites/krbd/wac/.qa b/qa/suites/krbd/wac/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/wac/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/wac/sysfs/% b/qa/suites/krbd/wac/sysfs/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/krbd/wac/sysfs/%
diff --git a/qa/suites/krbd/wac/sysfs/.qa b/qa/suites/krbd/wac/sysfs/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/wac/sysfs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/wac/sysfs/bluestore-bitmap.yaml b/qa/suites/krbd/wac/sysfs/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/krbd/wac/sysfs/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/wac/sysfs/ceph/.qa b/qa/suites/krbd/wac/sysfs/ceph/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/wac/sysfs/ceph/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/wac/sysfs/ceph/ceph.yaml b/qa/suites/krbd/wac/sysfs/ceph/ceph.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/krbd/wac/sysfs/ceph/ceph.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/krbd/wac/sysfs/clusters/.qa b/qa/suites/krbd/wac/sysfs/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/wac/sysfs/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/wac/sysfs/clusters/fixed-1.yaml b/qa/suites/krbd/wac/sysfs/clusters/fixed-1.yaml
new file mode 120000
index 00000000..02df5dd0
--- /dev/null
+++ b/qa/suites/krbd/wac/sysfs/clusters/fixed-1.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-1.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/wac/sysfs/conf.yaml b/qa/suites/krbd/wac/sysfs/conf.yaml
new file mode 100644
index 00000000..5e7ed992
--- /dev/null
+++ b/qa/suites/krbd/wac/sysfs/conf.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+ client:
+ rbd default features: 37
diff --git a/qa/suites/krbd/wac/sysfs/tasks/.qa b/qa/suites/krbd/wac/sysfs/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/wac/sysfs/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/wac/sysfs/tasks/stable_writes.yaml b/qa/suites/krbd/wac/sysfs/tasks/stable_writes.yaml
new file mode 100644
index 00000000..cd1ba930
--- /dev/null
+++ b/qa/suites/krbd/wac/sysfs/tasks/stable_writes.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - rbd/krbd_stable_writes.sh
diff --git a/qa/suites/krbd/wac/wac/% b/qa/suites/krbd/wac/wac/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/%
diff --git a/qa/suites/krbd/wac/wac/.qa b/qa/suites/krbd/wac/wac/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/wac/wac/bluestore-bitmap.yaml b/qa/suites/krbd/wac/wac/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/wac/wac/ceph/.qa b/qa/suites/krbd/wac/wac/ceph/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/ceph/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/wac/wac/ceph/ceph.yaml b/qa/suites/krbd/wac/wac/ceph/ceph.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/ceph/ceph.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/krbd/wac/wac/clusters/.qa b/qa/suites/krbd/wac/wac/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/wac/wac/clusters/fixed-3.yaml b/qa/suites/krbd/wac/wac/clusters/fixed-3.yaml
new file mode 120000
index 00000000..f75a848b
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/clusters/fixed-3.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-3.yaml \ No newline at end of file
diff --git a/qa/suites/krbd/wac/wac/conf.yaml b/qa/suites/krbd/wac/wac/conf.yaml
new file mode 100644
index 00000000..5e7ed992
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/conf.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+ client:
+ rbd default features: 37
diff --git a/qa/suites/krbd/wac/wac/tasks/.qa b/qa/suites/krbd/wac/wac/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/wac/wac/tasks/wac.yaml b/qa/suites/krbd/wac/wac/tasks/wac.yaml
new file mode 100644
index 00000000..52dabc38
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/tasks/wac.yaml
@@ -0,0 +1,11 @@
+tasks:
+- exec:
+ client.0:
+ - "dmesg -C"
+- rbd:
+ all:
+ fs_type: ext4
+- workunit:
+ clients:
+ all:
+ - suites/wac.sh
diff --git a/qa/suites/krbd/wac/wac/verify/.qa b/qa/suites/krbd/wac/wac/verify/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/verify/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/krbd/wac/wac/verify/many-resets.yaml b/qa/suites/krbd/wac/wac/verify/many-resets.yaml
new file mode 100644
index 00000000..d69f6503
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/verify/many-resets.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 500
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
+tasks:
+- exec:
+ client.0:
+ - "dmesg | grep -q 'libceph: osd.* socket closed'"
+ - "dmesg | grep -q 'libceph: osd.* socket error on write'"
diff --git a/qa/suites/krbd/wac/wac/verify/no-resets.yaml b/qa/suites/krbd/wac/wac/verify/no-resets.yaml
new file mode 100644
index 00000000..2728479d
--- /dev/null
+++ b/qa/suites/krbd/wac/wac/verify/no-resets.yaml
@@ -0,0 +1,5 @@
+tasks:
+- exec:
+ client.0:
+ - "! dmesg | grep -q 'libceph: osd.* socket closed'"
+ - "! dmesg | grep -q 'libceph: osd.* socket error on write'"
diff --git a/qa/suites/marginal/.qa b/qa/suites/marginal/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/basic/% b/qa/suites/marginal/basic/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/marginal/basic/%
diff --git a/qa/suites/marginal/basic/.qa b/qa/suites/marginal/basic/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/basic/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/basic/clusters/.qa b/qa/suites/marginal/basic/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/basic/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/basic/clusters/fixed-3.yaml b/qa/suites/marginal/basic/clusters/fixed-3.yaml
new file mode 100644
index 00000000..5e23c9e4
--- /dev/null
+++ b/qa/suites/marginal/basic/clusters/fixed-3.yaml
@@ -0,0 +1,4 @@
+roles:
+- [mon.a, mon.c, osd.0, osd.1, osd.2]
+- [mon.b, mgr.x, mds.a, osd.3, osd.4, osd.5]
+- [client.0]
diff --git a/qa/suites/marginal/basic/tasks/.qa b/qa/suites/marginal/basic/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/basic/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/basic/tasks/kclient_workunit_suites_blogbench.yaml b/qa/suites/marginal/basic/tasks/kclient_workunit_suites_blogbench.yaml
new file mode 100644
index 00000000..4f25d806
--- /dev/null
+++ b/qa/suites/marginal/basic/tasks/kclient_workunit_suites_blogbench.yaml
@@ -0,0 +1,8 @@
+tasks:
+- install:
+- ceph:
+- kclient:
+- workunit:
+ clients:
+ all:
+ - suites/blogbench.sh
diff --git a/qa/suites/marginal/basic/tasks/kclient_workunit_suites_fsx.yaml b/qa/suites/marginal/basic/tasks/kclient_workunit_suites_fsx.yaml
new file mode 100644
index 00000000..a0d2e765
--- /dev/null
+++ b/qa/suites/marginal/basic/tasks/kclient_workunit_suites_fsx.yaml
@@ -0,0 +1,8 @@
+tasks:
+- install:
+- ceph:
+- kclient:
+- workunit:
+ clients:
+ all:
+ - suites/fsx.sh
diff --git a/qa/suites/marginal/fs-misc/% b/qa/suites/marginal/fs-misc/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/marginal/fs-misc/%
diff --git a/qa/suites/marginal/fs-misc/.qa b/qa/suites/marginal/fs-misc/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/fs-misc/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/fs-misc/clusters/.qa b/qa/suites/marginal/fs-misc/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/fs-misc/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/fs-misc/clusters/two_clients.yaml b/qa/suites/marginal/fs-misc/clusters/two_clients.yaml
new file mode 100644
index 00000000..19d312dc
--- /dev/null
+++ b/qa/suites/marginal/fs-misc/clusters/two_clients.yaml
@@ -0,0 +1,4 @@
+roles:
+- [mon.a, mon.b, mon.c, mgr.x, mds.a, osd.0, osd.1, osd.2]
+- [client.1]
+- [client.0]
diff --git a/qa/suites/marginal/fs-misc/tasks/.qa b/qa/suites/marginal/fs-misc/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/fs-misc/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/fs-misc/tasks/locktest.yaml b/qa/suites/marginal/fs-misc/tasks/locktest.yaml
new file mode 100644
index 00000000..444bb1f1
--- /dev/null
+++ b/qa/suites/marginal/fs-misc/tasks/locktest.yaml
@@ -0,0 +1,5 @@
+tasks:
+- install:
+- ceph:
+- kclient:
+- locktest: [client.0, client.1]
diff --git a/qa/suites/marginal/mds_restart/% b/qa/suites/marginal/mds_restart/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/marginal/mds_restart/%
diff --git a/qa/suites/marginal/mds_restart/.qa b/qa/suites/marginal/mds_restart/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/mds_restart/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/mds_restart/clusters/.qa b/qa/suites/marginal/mds_restart/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/mds_restart/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/mds_restart/clusters/one_mds.yaml b/qa/suites/marginal/mds_restart/clusters/one_mds.yaml
new file mode 100644
index 00000000..45c3e80e
--- /dev/null
+++ b/qa/suites/marginal/mds_restart/clusters/one_mds.yaml
@@ -0,0 +1,4 @@
+roles:
+- [mon.a, mon.b, mon.c, mgr.x, osd.0, osd.1, osd.2]
+- [mds.a]
+- [client.0]
diff --git a/qa/suites/marginal/mds_restart/tasks/.qa b/qa/suites/marginal/mds_restart/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/mds_restart/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/mds_restart/tasks/restart-workunit-backtraces.yaml b/qa/suites/marginal/mds_restart/tasks/restart-workunit-backtraces.yaml
new file mode 100644
index 00000000..d086d4cf
--- /dev/null
+++ b/qa/suites/marginal/mds_restart/tasks/restart-workunit-backtraces.yaml
@@ -0,0 +1,11 @@
+tasks:
+- install:
+- ceph:
+ conf:
+ mds:
+ mds log segment size: 16384
+ mds log max segments: 1
+- restart:
+ exec:
+ client.0:
+ - test-backtraces.py
diff --git a/qa/suites/marginal/multimds/% b/qa/suites/marginal/multimds/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/marginal/multimds/%
diff --git a/qa/suites/marginal/multimds/.qa b/qa/suites/marginal/multimds/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/multimds/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/multimds/clusters/.qa b/qa/suites/marginal/multimds/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/multimds/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/multimds/clusters/3-node-3-mds.yaml b/qa/suites/marginal/multimds/clusters/3-node-3-mds.yaml
new file mode 100644
index 00000000..2995ea9f
--- /dev/null
+++ b/qa/suites/marginal/multimds/clusters/3-node-3-mds.yaml
@@ -0,0 +1,5 @@
+roles:
+- [mon.a, mon.c, mds.a, osd.0, osd.1, osd.2]
+- [mon.b, mgr.x, mds.b, mds.c, osd.3, osd.4, osd.5]
+- [client.0]
+- [client.1]
diff --git a/qa/suites/marginal/multimds/clusters/3-node-9-mds.yaml b/qa/suites/marginal/multimds/clusters/3-node-9-mds.yaml
new file mode 100644
index 00000000..083a07c2
--- /dev/null
+++ b/qa/suites/marginal/multimds/clusters/3-node-9-mds.yaml
@@ -0,0 +1,5 @@
+roles:
+- [mon.a, mon.c, mds.a, mds.b, mds.c, mds.d, osd.0, osd.1, osd.2]
+- [mon.b, mgr.x, mds.e, mds.f, mds.g, mds.h, mds.i, osd.3, osd.4, osd.5]
+- [client.0]
+- [client.1]
diff --git a/qa/suites/marginal/multimds/mounts/.qa b/qa/suites/marginal/multimds/mounts/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/multimds/mounts/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/multimds/mounts/ceph-fuse.yaml b/qa/suites/marginal/multimds/mounts/ceph-fuse.yaml
new file mode 100644
index 00000000..55d8beb0
--- /dev/null
+++ b/qa/suites/marginal/multimds/mounts/ceph-fuse.yaml
@@ -0,0 +1,7 @@
+tasks:
+- install:
+- ceph:
+ conf:
+ client:
+ fuse_default_permissions: 0
+- ceph-fuse:
diff --git a/qa/suites/marginal/multimds/mounts/kclient.yaml b/qa/suites/marginal/multimds/mounts/kclient.yaml
new file mode 100644
index 00000000..c18db8f5
--- /dev/null
+++ b/qa/suites/marginal/multimds/mounts/kclient.yaml
@@ -0,0 +1,4 @@
+tasks:
+- install:
+- ceph:
+- kclient:
diff --git a/qa/suites/marginal/multimds/tasks/.qa b/qa/suites/marginal/multimds/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/multimds/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/multimds/tasks/workunit_misc.yaml b/qa/suites/marginal/multimds/tasks/workunit_misc.yaml
new file mode 100644
index 00000000..aa62b9e8
--- /dev/null
+++ b/qa/suites/marginal/multimds/tasks/workunit_misc.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/misc
diff --git a/qa/suites/marginal/multimds/tasks/workunit_suites_blogbench.yaml b/qa/suites/marginal/multimds/tasks/workunit_suites_blogbench.yaml
new file mode 100644
index 00000000..4c1fcc11
--- /dev/null
+++ b/qa/suites/marginal/multimds/tasks/workunit_suites_blogbench.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/blogbench.sh
diff --git a/qa/suites/marginal/multimds/tasks/workunit_suites_dbench.yaml b/qa/suites/marginal/multimds/tasks/workunit_suites_dbench.yaml
new file mode 100644
index 00000000..41b2bc8e
--- /dev/null
+++ b/qa/suites/marginal/multimds/tasks/workunit_suites_dbench.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/dbench.sh
diff --git a/qa/suites/marginal/multimds/tasks/workunit_suites_fsstress.yaml b/qa/suites/marginal/multimds/tasks/workunit_suites_fsstress.yaml
new file mode 100644
index 00000000..ddb18fb7
--- /dev/null
+++ b/qa/suites/marginal/multimds/tasks/workunit_suites_fsstress.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
diff --git a/qa/suites/marginal/multimds/tasks/workunit_suites_fsync.yaml b/qa/suites/marginal/multimds/tasks/workunit_suites_fsync.yaml
new file mode 100644
index 00000000..7efa1adb
--- /dev/null
+++ b/qa/suites/marginal/multimds/tasks/workunit_suites_fsync.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsync-tester.sh
diff --git a/qa/suites/marginal/multimds/tasks/workunit_suites_pjd.yaml b/qa/suites/marginal/multimds/tasks/workunit_suites_pjd.yaml
new file mode 100644
index 00000000..a1937ead
--- /dev/null
+++ b/qa/suites/marginal/multimds/tasks/workunit_suites_pjd.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse default permissions: false
+ fuse set user groups: true
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/marginal/multimds/tasks/workunit_suites_truncate_delay.yaml b/qa/suites/marginal/multimds/tasks/workunit_suites_truncate_delay.yaml
new file mode 100644
index 00000000..3aa5f882
--- /dev/null
+++ b/qa/suites/marginal/multimds/tasks/workunit_suites_truncate_delay.yaml
@@ -0,0 +1,15 @@
+tasks:
+- install:
+- ceph:
+ conf:
+ client:
+ ms_inject_delay_probability: 1
+ ms_inject_delay_type: osd
+ ms_inject_delay_max: 5
+ client_oc_max_dirty_age: 1
+- ceph-fuse:
+- exec:
+ client.0:
+ - dd if=/dev/zero of=./foo count=100
+ - sleep 2
+ - truncate --size 0 ./foo
diff --git a/qa/suites/marginal/multimds/thrash/.qa b/qa/suites/marginal/multimds/thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/marginal/multimds/thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/marginal/multimds/thrash/exports.yaml b/qa/suites/marginal/multimds/thrash/exports.yaml
new file mode 100644
index 00000000..240b46df
--- /dev/null
+++ b/qa/suites/marginal/multimds/thrash/exports.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ mds:
+ mds thrash exports: 1
diff --git a/qa/suites/marginal/multimds/thrash/normal.yaml b/qa/suites/marginal/multimds/thrash/normal.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/marginal/multimds/thrash/normal.yaml
diff --git a/qa/suites/mixed-clients/.qa b/qa/suites/mixed-clients/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/mixed-clients/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/mixed-clients/basic/.qa b/qa/suites/mixed-clients/basic/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/mixed-clients/basic/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/mixed-clients/basic/clusters/.qa b/qa/suites/mixed-clients/basic/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/mixed-clients/basic/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/mixed-clients/basic/clusters/fixed-3.yaml b/qa/suites/mixed-clients/basic/clusters/fixed-3.yaml
new file mode 100644
index 00000000..134bca1b
--- /dev/null
+++ b/qa/suites/mixed-clients/basic/clusters/fixed-3.yaml
@@ -0,0 +1,4 @@
+roles:
+- [mon.a, mgr.x, mds.a, osd.0, osd.1]
+- [mon.b, mon.c, osd.2, osd.3, client.0]
+- [client.1]
diff --git a/qa/suites/mixed-clients/basic/objectstore b/qa/suites/mixed-clients/basic/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/mixed-clients/basic/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/mixed-clients/basic/tasks/.qa b/qa/suites/mixed-clients/basic/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/mixed-clients/basic/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/mixed-clients/basic/tasks/kernel_cfuse_workunits_dbench_iozone.yaml b/qa/suites/mixed-clients/basic/tasks/kernel_cfuse_workunits_dbench_iozone.yaml
new file mode 100644
index 00000000..bb347be7
--- /dev/null
+++ b/qa/suites/mixed-clients/basic/tasks/kernel_cfuse_workunits_dbench_iozone.yaml
@@ -0,0 +1,26 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+tasks:
+- install:
+ branch: dumpling
+- ceph:
+- parallel:
+ - user-workload
+ - kclient-workload
+user-workload:
+ sequential:
+ - ceph-fuse: [client.0]
+ - workunit:
+ clients:
+ client.0:
+ - suites/iozone.sh
+kclient-workload:
+ sequential:
+ - kclient: [client.1]
+ - workunit:
+ clients:
+ client.1:
+ - suites/dbench.sh
diff --git a/qa/suites/mixed-clients/basic/tasks/kernel_cfuse_workunits_untarbuild_blogbench.yaml b/qa/suites/mixed-clients/basic/tasks/kernel_cfuse_workunits_untarbuild_blogbench.yaml
new file mode 100644
index 00000000..2c32a61e
--- /dev/null
+++ b/qa/suites/mixed-clients/basic/tasks/kernel_cfuse_workunits_untarbuild_blogbench.yaml
@@ -0,0 +1,26 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+tasks:
+- install:
+ branch: dumpling
+- ceph:
+- parallel:
+ - user-workload
+ - kclient-workload
+user-workload:
+ sequential:
+ - ceph-fuse: [client.0]
+ - workunit:
+ clients:
+ client.0:
+ - suites/blogbench.sh
+kclient-workload:
+ sequential:
+ - kclient: [client.1]
+ - workunit:
+ clients:
+ client.1:
+ - kernel_untar_build.sh
diff --git a/qa/suites/multimds/.qa b/qa/suites/multimds/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/basic/% b/qa/suites/multimds/basic/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/multimds/basic/%
diff --git a/qa/suites/multimds/basic/.qa b/qa/suites/multimds/basic/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/basic/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/basic/0-supported-random-distro$ b/qa/suites/multimds/basic/0-supported-random-distro$
new file mode 120000
index 00000000..78f2991b
--- /dev/null
+++ b/qa/suites/multimds/basic/0-supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$/ \ No newline at end of file
diff --git a/qa/suites/multimds/basic/begin.yaml b/qa/suites/multimds/basic/begin.yaml
new file mode 120000
index 00000000..d64b08e9
--- /dev/null
+++ b/qa/suites/multimds/basic/begin.yaml
@@ -0,0 +1 @@
+../../fs/basic_workload/begin.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/basic/clusters/.qa b/qa/suites/multimds/basic/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/basic/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/basic/clusters/3-mds.yaml b/qa/suites/multimds/basic/clusters/3-mds.yaml
new file mode 120000
index 00000000..d7ec418e
--- /dev/null
+++ b/qa/suites/multimds/basic/clusters/3-mds.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/3-mds.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/basic/clusters/9-mds.yaml b/qa/suites/multimds/basic/clusters/9-mds.yaml
new file mode 120000
index 00000000..eeb9225a
--- /dev/null
+++ b/qa/suites/multimds/basic/clusters/9-mds.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/9-mds.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/basic/conf b/qa/suites/multimds/basic/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/multimds/basic/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/multimds/basic/inline b/qa/suites/multimds/basic/inline
new file mode 120000
index 00000000..e7d71330
--- /dev/null
+++ b/qa/suites/multimds/basic/inline
@@ -0,0 +1 @@
+../../fs/basic_workload/inline \ No newline at end of file
diff --git a/qa/suites/multimds/basic/mount b/qa/suites/multimds/basic/mount
new file mode 120000
index 00000000..e3600f45
--- /dev/null
+++ b/qa/suites/multimds/basic/mount
@@ -0,0 +1 @@
+.qa/cephfs/mount/ \ No newline at end of file
diff --git a/qa/suites/multimds/basic/objectstore-ec b/qa/suites/multimds/basic/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/multimds/basic/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/multimds/basic/overrides/% b/qa/suites/multimds/basic/overrides/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/multimds/basic/overrides/%
diff --git a/qa/suites/multimds/basic/overrides/.qa b/qa/suites/multimds/basic/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/basic/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/basic/overrides/basic b/qa/suites/multimds/basic/overrides/basic
new file mode 120000
index 00000000..75173551
--- /dev/null
+++ b/qa/suites/multimds/basic/overrides/basic
@@ -0,0 +1 @@
+../../../fs/basic_workload/overrides \ No newline at end of file
diff --git a/qa/suites/multimds/basic/overrides/fuse-default-perm-no.yaml b/qa/suites/multimds/basic/overrides/fuse-default-perm-no.yaml
new file mode 120000
index 00000000..1da96a10
--- /dev/null
+++ b/qa/suites/multimds/basic/overrides/fuse-default-perm-no.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/fuse/default-perm/no.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/basic/q_check_counter/.qa b/qa/suites/multimds/basic/q_check_counter/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/basic/q_check_counter/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/basic/q_check_counter/check_counter.yaml b/qa/suites/multimds/basic/q_check_counter/check_counter.yaml
new file mode 100644
index 00000000..1018b1e4
--- /dev/null
+++ b/qa/suites/multimds/basic/q_check_counter/check_counter.yaml
@@ -0,0 +1,8 @@
+
+tasks:
+- check-counter:
+ counters:
+ mds:
+ - "mds.exported"
+ - "mds.imported"
+
diff --git a/qa/suites/multimds/basic/tasks/.qa b/qa/suites/multimds/basic/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/basic/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/basic/tasks/cephfs_test_exports.yaml b/qa/suites/multimds/basic/tasks/cephfs_test_exports.yaml
new file mode 100644
index 00000000..46334fe1
--- /dev/null
+++ b/qa/suites/multimds/basic/tasks/cephfs_test_exports.yaml
@@ -0,0 +1,5 @@
+tasks:
+- cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_exports
diff --git a/qa/suites/multimds/basic/tasks/cephfs_test_snapshots.yaml b/qa/suites/multimds/basic/tasks/cephfs_test_snapshots.yaml
new file mode 100644
index 00000000..c86aaac9
--- /dev/null
+++ b/qa/suites/multimds/basic/tasks/cephfs_test_snapshots.yaml
@@ -0,0 +1,13 @@
+overrides:
+ check-counter:
+ dry_run: true
+ ceph:
+ log-whitelist:
+ - evicting unresponsive client
+ - RECENT_CRASH
+
+tasks:
+- cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_snapshots
diff --git a/qa/suites/multimds/basic/tasks/cfuse_workunit_kernel_untar_build.yaml b/qa/suites/multimds/basic/tasks/cfuse_workunit_kernel_untar_build.yaml
new file mode 100644
index 00000000..8dbc24a9
--- /dev/null
+++ b/qa/suites/multimds/basic/tasks/cfuse_workunit_kernel_untar_build.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse_default_permissions: 0
+tasks:
+- workunit:
+ clients:
+ all:
+ - kernel_untar_build.sh
diff --git a/qa/suites/multimds/basic/tasks/cfuse_workunit_misc.yaml b/qa/suites/multimds/basic/tasks/cfuse_workunit_misc.yaml
new file mode 100644
index 00000000..58866a27
--- /dev/null
+++ b/qa/suites/multimds/basic/tasks/cfuse_workunit_misc.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/misc
+
diff --git a/qa/suites/multimds/basic/tasks/cfuse_workunit_norstats.yaml b/qa/suites/multimds/basic/tasks/cfuse_workunit_norstats.yaml
new file mode 100644
index 00000000..3776131b
--- /dev/null
+++ b/qa/suites/multimds/basic/tasks/cfuse_workunit_norstats.yaml
@@ -0,0 +1,11 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/norstats
+
+overrides:
+ ceph:
+ conf:
+ client:
+ client dirsize rbytes: false
diff --git a/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_blogbench.yaml b/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_blogbench.yaml
new file mode 120000
index 00000000..8702f4f3
--- /dev/null
+++ b/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_blogbench.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_blogbench.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_dbench.yaml b/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_dbench.yaml
new file mode 120000
index 00000000..b0f876c3
--- /dev/null
+++ b/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_dbench.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_dbench.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_ffsb.yaml b/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_ffsb.yaml
new file mode 120000
index 00000000..01e889b2
--- /dev/null
+++ b/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_ffsb.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_ffsb.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_fsstress.yaml b/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_fsstress.yaml
new file mode 120000
index 00000000..c2e859ff
--- /dev/null
+++ b/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_fsstress.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_fsstress.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_fsx.yaml b/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_fsx.yaml
new file mode 100644
index 00000000..8b2b1ab5
--- /dev/null
+++ b/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_fsx.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsx.sh
diff --git a/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_pjd.yaml b/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_pjd.yaml
new file mode 100644
index 00000000..37e315f7
--- /dev/null
+++ b/qa/suites/multimds/basic/tasks/cfuse_workunit_suites_pjd.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse set user groups: true
+ fuse default permissions: false
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/multimds/thrash/% b/qa/suites/multimds/thrash/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/multimds/thrash/%
diff --git a/qa/suites/multimds/thrash/.qa b/qa/suites/multimds/thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/0-supported-random-distro$ b/qa/suites/multimds/thrash/0-supported-random-distro$
new file mode 120000
index 00000000..78f2991b
--- /dev/null
+++ b/qa/suites/multimds/thrash/0-supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$/ \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/begin.yaml b/qa/suites/multimds/thrash/begin.yaml
new file mode 120000
index 00000000..42459d1b
--- /dev/null
+++ b/qa/suites/multimds/thrash/begin.yaml
@@ -0,0 +1 @@
+../../fs/thrash/begin.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/ceph-thrash b/qa/suites/multimds/thrash/ceph-thrash
new file mode 120000
index 00000000..d632af9d
--- /dev/null
+++ b/qa/suites/multimds/thrash/ceph-thrash
@@ -0,0 +1 @@
+../../fs/thrash/ceph-thrash/ \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/clusters/.qa b/qa/suites/multimds/thrash/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/thrash/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/clusters/3-mds-2-standby.yaml b/qa/suites/multimds/thrash/clusters/3-mds-2-standby.yaml
new file mode 100644
index 00000000..5936fcb5
--- /dev/null
+++ b/qa/suites/multimds/thrash/clusters/3-mds-2-standby.yaml
@@ -0,0 +1,4 @@
+roles:
+- [mon.a, mon.c, mds.a, mds.c, mds.e, osd.0, osd.1, osd.2]
+- [mon.b, mgr.x, mds.b, mds.d, osd.3, osd.4, osd.5]
+- [client.0]
diff --git a/qa/suites/multimds/thrash/clusters/9-mds-3-standby.yaml b/qa/suites/multimds/thrash/clusters/9-mds-3-standby.yaml
new file mode 100644
index 00000000..6775e621
--- /dev/null
+++ b/qa/suites/multimds/thrash/clusters/9-mds-3-standby.yaml
@@ -0,0 +1,4 @@
+roles:
+- [mon.a, mon.c, mds.a, mds.c, mds.e, mds.g, mds.i, mds.k, osd.0, osd.1, osd.2]
+- [mon.b, mgr.x, mds.b, mds.d, mds.f, mds.h, mds.j, mds.l, osd.3, osd.4, osd.5]
+- [client.0]
diff --git a/qa/suites/multimds/thrash/conf b/qa/suites/multimds/thrash/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/multimds/thrash/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/mount b/qa/suites/multimds/thrash/mount
new file mode 120000
index 00000000..e3600f45
--- /dev/null
+++ b/qa/suites/multimds/thrash/mount
@@ -0,0 +1 @@
+.qa/cephfs/mount/ \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/msgr-failures b/qa/suites/multimds/thrash/msgr-failures
new file mode 120000
index 00000000..534e0d84
--- /dev/null
+++ b/qa/suites/multimds/thrash/msgr-failures
@@ -0,0 +1 @@
+../../fs/thrash/msgr-failures/ \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/objectstore-ec b/qa/suites/multimds/thrash/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/multimds/thrash/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/overrides/% b/qa/suites/multimds/thrash/overrides/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/multimds/thrash/overrides/%
diff --git a/qa/suites/multimds/thrash/overrides/.qa b/qa/suites/multimds/thrash/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/thrash/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/overrides/fuse-default-perm-no.yaml b/qa/suites/multimds/thrash/overrides/fuse-default-perm-no.yaml
new file mode 120000
index 00000000..1da96a10
--- /dev/null
+++ b/qa/suites/multimds/thrash/overrides/fuse-default-perm-no.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/fuse/default-perm/no.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/overrides/thrash b/qa/suites/multimds/thrash/overrides/thrash
new file mode 120000
index 00000000..1f0c36d2
--- /dev/null
+++ b/qa/suites/multimds/thrash/overrides/thrash
@@ -0,0 +1 @@
+../../../fs/thrash/overrides/ \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/overrides/thrash_debug.yaml b/qa/suites/multimds/thrash/overrides/thrash_debug.yaml
new file mode 100644
index 00000000..2243037c
--- /dev/null
+++ b/qa/suites/multimds/thrash/overrides/thrash_debug.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ mds:
+ debug ms: 10
+ client:
+ debug ms: 10
diff --git a/qa/suites/multimds/thrash/tasks/.qa b/qa/suites/multimds/thrash/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/thrash/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/tasks/cfuse_workunit_suites_fsstress.yaml b/qa/suites/multimds/thrash/tasks/cfuse_workunit_suites_fsstress.yaml
new file mode 120000
index 00000000..324538ec
--- /dev/null
+++ b/qa/suites/multimds/thrash/tasks/cfuse_workunit_suites_fsstress.yaml
@@ -0,0 +1 @@
+../../../fs/thrash/tasks/cfuse_workunit_suites_fsstress.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/thrash/tasks/cfuse_workunit_suites_pjd.yaml b/qa/suites/multimds/thrash/tasks/cfuse_workunit_suites_pjd.yaml
new file mode 120000
index 00000000..a6852a2a
--- /dev/null
+++ b/qa/suites/multimds/thrash/tasks/cfuse_workunit_suites_pjd.yaml
@@ -0,0 +1 @@
+../../../fs/thrash/tasks/cfuse_workunit_suites_pjd.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/verify/% b/qa/suites/multimds/verify/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/multimds/verify/%
diff --git a/qa/suites/multimds/verify/.qa b/qa/suites/multimds/verify/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/verify/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/verify/begin.yaml b/qa/suites/multimds/verify/begin.yaml
new file mode 120000
index 00000000..a199d468
--- /dev/null
+++ b/qa/suites/multimds/verify/begin.yaml
@@ -0,0 +1 @@
+../../fs/verify/begin.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/verify/centos_latest.yaml b/qa/suites/multimds/verify/centos_latest.yaml
new file mode 120000
index 00000000..bd9854e7
--- /dev/null
+++ b/qa/suites/multimds/verify/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/verify/clusters/.qa b/qa/suites/multimds/verify/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/verify/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/verify/clusters/3-mds.yaml b/qa/suites/multimds/verify/clusters/3-mds.yaml
new file mode 120000
index 00000000..d7ec418e
--- /dev/null
+++ b/qa/suites/multimds/verify/clusters/3-mds.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/3-mds.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/verify/clusters/9-mds.yaml b/qa/suites/multimds/verify/clusters/9-mds.yaml
new file mode 120000
index 00000000..eeb9225a
--- /dev/null
+++ b/qa/suites/multimds/verify/clusters/9-mds.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/9-mds.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/verify/conf b/qa/suites/multimds/verify/conf
new file mode 120000
index 00000000..16e8cc44
--- /dev/null
+++ b/qa/suites/multimds/verify/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/multimds/verify/mount b/qa/suites/multimds/verify/mount
new file mode 120000
index 00000000..e3600f45
--- /dev/null
+++ b/qa/suites/multimds/verify/mount
@@ -0,0 +1 @@
+.qa/cephfs/mount/ \ No newline at end of file
diff --git a/qa/suites/multimds/verify/objectstore-ec b/qa/suites/multimds/verify/objectstore-ec
new file mode 120000
index 00000000..affe2949
--- /dev/null
+++ b/qa/suites/multimds/verify/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/multimds/verify/overrides/% b/qa/suites/multimds/verify/overrides/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/multimds/verify/overrides/%
diff --git a/qa/suites/multimds/verify/overrides/.qa b/qa/suites/multimds/verify/overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/multimds/verify/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/multimds/verify/overrides/fuse-default-perm-no.yaml b/qa/suites/multimds/verify/overrides/fuse-default-perm-no.yaml
new file mode 120000
index 00000000..1da96a10
--- /dev/null
+++ b/qa/suites/multimds/verify/overrides/fuse-default-perm-no.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/fuse/default-perm/no.yaml \ No newline at end of file
diff --git a/qa/suites/multimds/verify/overrides/verify b/qa/suites/multimds/verify/overrides/verify
new file mode 120000
index 00000000..3ded92ed
--- /dev/null
+++ b/qa/suites/multimds/verify/overrides/verify
@@ -0,0 +1 @@
+../../../fs/verify/overrides/ \ No newline at end of file
diff --git a/qa/suites/multimds/verify/tasks b/qa/suites/multimds/verify/tasks
new file mode 120000
index 00000000..f0edfbd4
--- /dev/null
+++ b/qa/suites/multimds/verify/tasks
@@ -0,0 +1 @@
+../../fs/verify/tasks/ \ No newline at end of file
diff --git a/qa/suites/multimds/verify/validater b/qa/suites/multimds/verify/validater
new file mode 120000
index 00000000..0c7f8a50
--- /dev/null
+++ b/qa/suites/multimds/verify/validater
@@ -0,0 +1 @@
+../../fs/verify/validater/ \ No newline at end of file
diff --git a/qa/suites/perf-basic/% b/qa/suites/perf-basic/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/perf-basic/%
diff --git a/qa/suites/perf-basic/.qa b/qa/suites/perf-basic/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/perf-basic/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/perf-basic/ceph.yaml b/qa/suites/perf-basic/ceph.yaml
new file mode 100644
index 00000000..43807c69
--- /dev/null
+++ b/qa/suites/perf-basic/ceph.yaml
@@ -0,0 +1,24 @@
+meta:
+- desc: |
+ perf-basic is a basic performance suite.
+ Must be run on bare-metal machines.
+ On VMs performance results will be inconsistent
+ and can't be compared across runs.
+ Run ceph on a single node.
+ Use xfs beneath the osds.
+ Setup rgw on client.0
+
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ wait-for-scrub: false
+ log-whitelist:
+ - \(PG_
+ - \(OSD_
+ - \(OBJECT_
+ - overall HEALTH
+- rgw: [client.0]
+- ssh_keys:
diff --git a/qa/suites/perf-basic/objectstore/.qa b/qa/suites/perf-basic/objectstore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/perf-basic/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/perf-basic/objectstore/bluestore.yaml b/qa/suites/perf-basic/objectstore/bluestore.yaml
new file mode 100644
index 00000000..f5793d76
--- /dev/null
+++ b/qa/suites/perf-basic/objectstore/bluestore.yaml
@@ -0,0 +1,15 @@
+overrides:
+ ceph:
+ fs: xfs
+ conf:
+ osd:
+ osd objectstore: bluestore
+ bluestore block size: 96636764160
+ ceph-deploy:
+ fs: xfs
+ bluestore: yes
+ conf:
+ osd:
+ osd objectstore: bluestore
+ bluestore block size: 96636764160
+
diff --git a/qa/suites/perf-basic/objectstore/filestore-xfs.yaml b/qa/suites/perf-basic/objectstore/filestore-xfs.yaml
new file mode 100644
index 00000000..f7aa0dd7
--- /dev/null
+++ b/qa/suites/perf-basic/objectstore/filestore-xfs.yaml
@@ -0,0 +1,15 @@
+overrides:
+ ceph:
+ fs: xfs
+ conf:
+ osd:
+ osd objectstore: filestore
+ osd sloppy crc: true
+ ceph-deploy:
+ fs: xfs
+ filestore: True
+ conf:
+ osd:
+ osd objectstore: filestore
+ osd sloppy crc: true
+
diff --git a/qa/suites/perf-basic/settings/.qa b/qa/suites/perf-basic/settings/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/perf-basic/settings/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/perf-basic/settings/optimized.yaml b/qa/suites/perf-basic/settings/optimized.yaml
new file mode 100644
index 00000000..fffb9be5
--- /dev/null
+++ b/qa/suites/perf-basic/settings/optimized.yaml
@@ -0,0 +1,80 @@
+meta:
+- desc: |
+ Use debug level 0/0 for performance tests.
+
+overrides:
+ ceph:
+ conf:
+ mon:
+ debug mon: "0/0"
+ debug ms: "0/0"
+ debug paxos: "0/0"
+ osd:
+ debug filestore: "0/0"
+ debug journal: "0/0"
+ debug ms: "0/0"
+ debug osd: "0/0"
+ global:
+ auth client required: none
+ auth cluster required: none
+ auth service required: none
+ auth supported: none
+
+ debug lockdep: "0/0"
+ debug context: "0/0"
+ debug crush: "0/0"
+ debug mds: "0/0"
+ debug mds balancer: "0/0"
+ debug mds locker: "0/0"
+ debug mds log: "0/0"
+ debug mds log expire: "0/0"
+ debug mds migrator: "0/0"
+ debug buffer: "0/0"
+ debug timer: "0/0"
+ debug filer: "0/0"
+ debug striper: "0/0"
+ debug objecter: "0/0"
+ debug rados: "0/0"
+ debug rbd: "0/0"
+ debug rbd mirror: "0/0"
+ debug rbd replay: "0/0"
+ debug journaler: "0/0"
+ debug objectcacher: "0/0"
+ debug client: "0/0"
+ debug osd: "0/0"
+ debug optracker: "0/0"
+ debug objclass: "0/0"
+ debug filestore: "0/0"
+ debug journal: "0/0"
+ debug ms: "0/0"
+ debug mon: "0/0"
+ debug monc: "0/0"
+ debug paxos: "0/0"
+ debug tp: "0/0"
+ debug auth: "0/0"
+ debug crypto: "0/0"
+ debug finisher: "0/0"
+ debug heartbeatmap: "0/0"
+ debug perfcounter: "0/0"
+ debug rgw: "0/0"
+ debug rgw sync: "0/0"
+ debug civetweb: "0/0"
+ debug javaclient: "0/0"
+ debug asok: "0/0"
+ debug throttle: "0/0"
+ debug refs: "0/0"
+ debug xio: "0/0"
+ debug compressor: "0/0"
+ debug bluestore: "0/0"
+ debug bluefs: "0/0"
+ debug bdev: "0/0"
+ debug kstore: "0/0"
+ debug rocksdb: "0/0"
+ debug leveldb: "0/0"
+ debug memdb: "0/0"
+ debug kinetic: "0/0"
+ debug fuse: "0/0"
+ debug mgr: "0/0"
+ debug mgrc: "0/0"
+ debug dpdk: "0/0"
+ debug eventtrace: "0/0"
diff --git a/qa/suites/perf-basic/supported-all-distro b/qa/suites/perf-basic/supported-all-distro
new file mode 120000
index 00000000..ca82dde5
--- /dev/null
+++ b/qa/suites/perf-basic/supported-all-distro
@@ -0,0 +1 @@
+.qa/distros/supported-all-distro \ No newline at end of file
diff --git a/qa/suites/perf-basic/workloads/.qa b/qa/suites/perf-basic/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/perf-basic/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/perf-basic/workloads/cosbench_64K_write.yaml b/qa/suites/perf-basic/workloads/cosbench_64K_write.yaml
new file mode 100644
index 00000000..ebdb6d71
--- /dev/null
+++ b/qa/suites/perf-basic/workloads/cosbench_64K_write.yaml
@@ -0,0 +1,31 @@
+meta:
+- desc: |
+ Run cosbench benchmark using cbt.
+ 64K write workload.
+
+overrides:
+ rgw:
+ data_pool_pg_size: 64
+ index_pool_pg_size: 64
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ cosbench:
+ obj_size: [64KB]
+ osd_ra: [4096]
+ workers: 1
+ containers_max: 1000
+ objects_max: 100
+ mode: [write]
+ template: [default]
+ rampup: 30
+ runtime: 300
+ rampdown: 30
+ containers: ["u(1,100)"]
+ objects: ["u(1,100)"]
+ ratio: [100]
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 1
+ iterations: 1
diff --git a/qa/suites/perf-basic/workloads/fio_4K_rand_write.yaml b/qa/suites/perf-basic/workloads/fio_4K_rand_write.yaml
new file mode 100644
index 00000000..a660ac5a
--- /dev/null
+++ b/qa/suites/perf-basic/workloads/fio_4K_rand_write.yaml
@@ -0,0 +1,30 @@
+meta:
+- desc: |
+ Run librbdfio benchmark using cbt.
+ 4K randwrite workload.
+
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ librbdfio:
+ op_size: [4096]
+ time: 300
+ mode: ['randwrite']
+ norandommap: True
+ vol_size: 4096
+ procs_per_volume: [1]
+ volumes_per_client: [2]
+ iodepth: [32]
+ osd_ra: [4096]
+ pool_profile: 'rbd'
+ log_avg_msec: 100
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ rbd:
+ pg_size: 256
+ pgp_size: 256
+ replication: 3
diff --git a/qa/suites/perf-basic/workloads/radosbench_4K_write.yaml b/qa/suites/perf-basic/workloads/radosbench_4K_write.yaml
new file mode 100644
index 00000000..93c01792
--- /dev/null
+++ b/qa/suites/perf-basic/workloads/radosbench_4K_write.yaml
@@ -0,0 +1,29 @@
+meta:
+- desc: |
+ Run radosbench benchmark using cbt.
+ 4K write workload.
+
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ radosbench:
+ concurrent_ops: 4
+ concurrent_procs: 2
+ op_size: [4096]
+ pool_monitoring_list:
+ - collectl
+ pool_profile: 'replicated'
+ run_monitoring_list:
+ - collectl
+ time: 300
+ write_only: true
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ replicated:
+ pg_size: 256
+ pgp_size: 256
+ replication: 'replicated'
diff --git a/qa/suites/powercycle/.qa b/qa/suites/powercycle/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/powercycle/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/powercycle/osd/% b/qa/suites/powercycle/osd/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/powercycle/osd/%
diff --git a/qa/suites/powercycle/osd/.qa b/qa/suites/powercycle/osd/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/powercycle/osd/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/powercycle/osd/clusters/.qa b/qa/suites/powercycle/osd/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/powercycle/osd/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/powercycle/osd/clusters/3osd-1per-target.yaml b/qa/suites/powercycle/osd/clusters/3osd-1per-target.yaml
new file mode 100644
index 00000000..2fbcd018
--- /dev/null
+++ b/qa/suites/powercycle/osd/clusters/3osd-1per-target.yaml
@@ -0,0 +1,5 @@
+roles:
+- [mon.a, mon.b, mon.c, mgr.x, mgr.y, mds.a, client.0]
+- [osd.0]
+- [osd.1]
+- [osd.2]
diff --git a/qa/suites/powercycle/osd/objectstore b/qa/suites/powercycle/osd/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/powercycle/osd/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/powercycle/osd/powercycle/.qa b/qa/suites/powercycle/osd/powercycle/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/powercycle/osd/powercycle/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/powercycle/osd/powercycle/default.yaml b/qa/suites/powercycle/osd/powercycle/default.yaml
new file mode 100644
index 00000000..a693f4b4
--- /dev/null
+++ b/qa/suites/powercycle/osd/powercycle/default.yaml
@@ -0,0 +1,10 @@
+tasks:
+- install:
+ extra_system_packages:
+ deb: ['bison', 'flex', 'libelf-dev', 'libssl-dev']
+ rpm: ['bison', 'flex', 'elfutils-libelf-devel', 'openssl-devel']
+- ceph:
+- thrashosds:
+ chance_down: 1.0
+ powercycle: true
+ timeout: 600
diff --git a/qa/suites/powercycle/osd/supported-all-distro b/qa/suites/powercycle/osd/supported-all-distro
new file mode 120000
index 00000000..ca82dde5
--- /dev/null
+++ b/qa/suites/powercycle/osd/supported-all-distro
@@ -0,0 +1 @@
+.qa/distros/supported-all-distro \ No newline at end of file
diff --git a/qa/suites/powercycle/osd/tasks/.qa b/qa/suites/powercycle/osd/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/powercycle/osd/tasks/admin_socket_objecter_requests.yaml b/qa/suites/powercycle/osd/tasks/admin_socket_objecter_requests.yaml
new file mode 100644
index 00000000..3b1a8920
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/admin_socket_objecter_requests.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ client.0:
+ admin socket: /var/run/ceph/ceph-$name.asok
+tasks:
+- radosbench:
+ clients: [client.0]
+ time: 60
+- admin_socket:
+ client.0:
+ objecter_requests:
+ test: "http://git.ceph.com/?p={repo};a=blob_plain;f=src/test/admin_socket/objecter_requests;hb={branch}"
diff --git a/qa/suites/powercycle/osd/tasks/cfuse_workunit_kernel_untar_build.yaml b/qa/suites/powercycle/osd/tasks/cfuse_workunit_kernel_untar_build.yaml
new file mode 100644
index 00000000..87f8f57c
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/cfuse_workunit_kernel_untar_build.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse_default_permissions: 0
+tasks:
+- ceph-fuse:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - kernel_untar_build.sh
diff --git a/qa/suites/powercycle/osd/tasks/cfuse_workunit_misc.yaml b/qa/suites/powercycle/osd/tasks/cfuse_workunit_misc.yaml
new file mode 100644
index 00000000..683d3f59
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/cfuse_workunit_misc.yaml
@@ -0,0 +1,7 @@
+tasks:
+- ceph-fuse:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - fs/misc
diff --git a/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_ffsb.yaml b/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_ffsb.yaml
new file mode 100644
index 00000000..9f3fa7b1
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_ffsb.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ filestore flush min: 0
+ mds:
+ debug ms: 1
+ debug mds: 20
+tasks:
+- ceph-fuse:
+- workunit:
+ clients:
+ all:
+ - suites/ffsb.sh
diff --git a/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsstress.yaml b/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsstress.yaml
new file mode 100644
index 00000000..5908d951
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsstress.yaml
@@ -0,0 +1,6 @@
+tasks:
+- ceph-fuse:
+- workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
diff --git a/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsx.yaml b/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsx.yaml
new file mode 100644
index 00000000..94031518
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsx.yaml
@@ -0,0 +1,7 @@
+tasks:
+- ceph-fuse:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/fsx.sh
diff --git a/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsync.yaml b/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsync.yaml
new file mode 100644
index 00000000..2cbb03c7
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsync.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ osd_pg_log_dups_tracked: 10000
+
+tasks:
+- ceph-fuse:
+- workunit:
+ clients:
+ all:
+ - suites/fsync-tester.sh
diff --git a/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_pjd.yaml b/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_pjd.yaml
new file mode 100644
index 00000000..664791c3
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_pjd.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse default permissions: false
+ fuse set user groups: true
+tasks:
+- ceph-fuse:
+- workunit:
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_truncate_delay.yaml b/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_truncate_delay.yaml
new file mode 100644
index 00000000..f3efafa2
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_truncate_delay.yaml
@@ -0,0 +1,15 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ ms_inject_delay_probability: 1
+ ms_inject_delay_type: osd
+ ms_inject_delay_max: 5
+ client_oc_max_dirty_age: 1
+tasks:
+- ceph-fuse:
+- exec:
+ client.0:
+ - dd if=/dev/zero of=./foo count=100
+ - sleep 2
+ - truncate --size 0 ./foo
diff --git a/qa/suites/powercycle/osd/tasks/rados_api_tests.yaml b/qa/suites/powercycle/osd/tasks/rados_api_tests.yaml
new file mode 100644
index 00000000..4899bf16
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/rados_api_tests.yaml
@@ -0,0 +1,15 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - reached quota
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(PG_AVAILABILITY\)
+ conf:
+ mon:
+ mon warn on pool no app: false
+tasks:
+- ceph-fuse:
+- workunit:
+ clients:
+ client.0:
+ - rados/test.sh
diff --git a/qa/suites/powercycle/osd/tasks/radosbench.yaml b/qa/suites/powercycle/osd/tasks/radosbench.yaml
new file mode 100644
index 00000000..91573f90
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/radosbench.yaml
@@ -0,0 +1,38 @@
+tasks:
+- full_sequential:
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
diff --git a/qa/suites/powercycle/osd/tasks/readwrite.yaml b/qa/suites/powercycle/osd/tasks/readwrite.yaml
new file mode 100644
index 00000000..c53e52b0
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/readwrite.yaml
@@ -0,0 +1,9 @@
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ op_weights:
+ read: 45
+ write: 45
+ delete: 10
diff --git a/qa/suites/powercycle/osd/tasks/snaps-few-objects.yaml b/qa/suites/powercycle/osd/tasks/snaps-few-objects.yaml
new file mode 100644
index 00000000..aa82d973
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/snaps-few-objects.yaml
@@ -0,0 +1,13 @@
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
diff --git a/qa/suites/powercycle/osd/tasks/snaps-many-objects.yaml b/qa/suites/powercycle/osd/tasks/snaps-many-objects.yaml
new file mode 100644
index 00000000..1ffe4e14
--- /dev/null
+++ b/qa/suites/powercycle/osd/tasks/snaps-many-objects.yaml
@@ -0,0 +1,13 @@
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
diff --git a/qa/suites/powercycle/osd/thrashosds-health.yaml b/qa/suites/powercycle/osd/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/powercycle/osd/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/powercycle/osd/whitelist_health.yaml b/qa/suites/powercycle/osd/whitelist_health.yaml
new file mode 100644
index 00000000..f724302a
--- /dev/null
+++ b/qa/suites/powercycle/osd/whitelist_health.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - \(MDS_TRIM\)
+ - \(MDS_SLOW_REQUEST\)
+ - MDS_SLOW_METADATA_IO
+ - Behind on trimming
diff --git a/qa/suites/rados/.qa b/qa/suites/rados/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/basic/% b/qa/suites/rados/basic/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/basic/%
diff --git a/qa/suites/rados/basic/.qa b/qa/suites/rados/basic/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/basic/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/basic/ceph.yaml b/qa/suites/rados/basic/ceph.yaml
new file mode 100644
index 00000000..c0857e14
--- /dev/null
+++ b/qa/suites/rados/basic/ceph.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ mon:
+ mon min osdmap epochs: 50
+ paxos service trim min: 10
+ # prune full osdmaps regularly
+ mon osdmap full prune min: 15
+ mon osdmap full prune interval: 2
+ mon osdmap full prune txsize: 2
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/rados/basic/clusters/+ b/qa/suites/rados/basic/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/basic/clusters/+
diff --git a/qa/suites/rados/basic/clusters/.qa b/qa/suites/rados/basic/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/basic/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/basic/clusters/fixed-2.yaml b/qa/suites/rados/basic/clusters/fixed-2.yaml
new file mode 120000
index 00000000..230ff0fd
--- /dev/null
+++ b/qa/suites/rados/basic/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rados/basic/clusters/openstack.yaml b/qa/suites/rados/basic/clusters/openstack.yaml
new file mode 100644
index 00000000..e559d912
--- /dev/null
+++ b/qa/suites/rados/basic/clusters/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
diff --git a/qa/suites/rados/basic/msgr b/qa/suites/rados/basic/msgr
new file mode 120000
index 00000000..57bee80d
--- /dev/null
+++ b/qa/suites/rados/basic/msgr
@@ -0,0 +1 @@
+.qa/msgr \ No newline at end of file
diff --git a/qa/suites/rados/basic/msgr-failures/.qa b/qa/suites/rados/basic/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/basic/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/basic/msgr-failures/few.yaml b/qa/suites/rados/basic/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/rados/basic/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/basic/msgr-failures/many.yaml b/qa/suites/rados/basic/msgr-failures/many.yaml
new file mode 100644
index 00000000..f4bb065b
--- /dev/null
+++ b/qa/suites/rados/basic/msgr-failures/many.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 1500
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/basic/objectstore b/qa/suites/rados/basic/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/basic/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/basic/rados.yaml b/qa/suites/rados/basic/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/basic/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/basic/supported-random-distro$ b/qa/suites/rados/basic/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rados/basic/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/basic/tasks/.qa b/qa/suites/rados/basic/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/basic/tasks/rados_api_tests.yaml b/qa/suites/rados/basic/tasks/rados_api_tests.yaml
new file mode 100644
index 00000000..b90d8089
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/rados_api_tests.yaml
@@ -0,0 +1,24 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - reached quota
+ - but it is still running
+ - overall HEALTH_
+ - \(POOL_FULL\)
+ - \(SMALLER_PGP_NUM\)
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(CACHE_POOL_NEAR_FULL\)
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(PG_AVAILABILITY\)
+ conf:
+ client:
+ debug ms: 1
+ mon:
+ mon warn on pool no app: false
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rados/test.sh
+ - rados/test_pool_quota.sh
+
diff --git a/qa/suites/rados/basic/tasks/rados_cls_all.yaml b/qa/suites/rados/basic/tasks/rados_cls_all.yaml
new file mode 100644
index 00000000..bcc58e19
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/rados_cls_all.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd_class_load_list: "cephfs hello journal lock log numops rbd refcount
+ rgw sdk timeindex user version"
+ osd_class_default_list: "cephfs hello journal lock log numops rbd refcount
+ rgw sdk timeindex user version"
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - cls
diff --git a/qa/suites/rados/basic/tasks/rados_python.yaml b/qa/suites/rados/basic/tasks/rados_python.yaml
new file mode 100644
index 00000000..8c70304d
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/rados_python.yaml
@@ -0,0 +1,15 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(PG_
+ - \(OSD_
+ - \(OBJECT_
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rados/test_python.sh
diff --git a/qa/suites/rados/basic/tasks/rados_stress_watch.yaml b/qa/suites/rados/basic/tasks/rados_stress_watch.yaml
new file mode 100644
index 00000000..bee513eb
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/rados_stress_watch.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(TOO_FEW_PGS\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rados/stress_watch.sh
diff --git a/qa/suites/rados/basic/tasks/rados_striper.yaml b/qa/suites/rados/basic/tasks/rados_striper.yaml
new file mode 100644
index 00000000..c19cc83a
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/rados_striper.yaml
@@ -0,0 +1,7 @@
+tasks:
+- exec:
+ client.0:
+ - ceph_test_rados_striper_api_io
+ - ceph_test_rados_striper_api_aio
+ - ceph_test_rados_striper_api_striping
+
diff --git a/qa/suites/rados/basic/tasks/rados_workunit_loadgen_big.yaml b/qa/suites/rados/basic/tasks/rados_workunit_loadgen_big.yaml
new file mode 100644
index 00000000..2dade6de
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/rados_workunit_loadgen_big.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ all:
+ - rados/load-gen-big.sh
diff --git a/qa/suites/rados/basic/tasks/rados_workunit_loadgen_mix.yaml b/qa/suites/rados/basic/tasks/rados_workunit_loadgen_mix.yaml
new file mode 100644
index 00000000..6b764a87
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/rados_workunit_loadgen_mix.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ all:
+ - rados/load-gen-mix.sh
diff --git a/qa/suites/rados/basic/tasks/rados_workunit_loadgen_mostlyread.yaml b/qa/suites/rados/basic/tasks/rados_workunit_loadgen_mostlyread.yaml
new file mode 100644
index 00000000..c82023c2
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/rados_workunit_loadgen_mostlyread.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ all:
+ - rados/load-gen-mostlyread.sh
diff --git a/qa/suites/rados/basic/tasks/readwrite.yaml b/qa/suites/rados/basic/tasks/readwrite.yaml
new file mode 100644
index 00000000..f135107c
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/readwrite.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ crush_tunables: optimal
+ conf:
+ mon:
+ mon osd initial require min compat client: luminous
+ osd:
+ osd_discard_disconnected_ops: false
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ op_weights:
+ read: 45
+ write: 45
+ delete: 10
diff --git a/qa/suites/rados/basic/tasks/repair_test.yaml b/qa/suites/rados/basic/tasks/repair_test.yaml
new file mode 100644
index 00000000..f3a7868d
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/repair_test.yaml
@@ -0,0 +1,31 @@
+overrides:
+ ceph:
+ wait-for-scrub: false
+ log-whitelist:
+ - candidate had a stat error
+ - candidate had a read error
+ - deep-scrub 0 missing, 1 inconsistent objects
+ - deep-scrub 0 missing, 4 inconsistent objects
+ - deep-scrub [0-9]+ errors
+ - '!= omap_digest'
+ - '!= data_digest'
+ - repair 0 missing, 1 inconsistent objects
+ - repair 0 missing, 4 inconsistent objects
+ - repair [0-9]+ errors, [0-9]+ fixed
+ - scrub 0 missing, 1 inconsistent objects
+ - scrub [0-9]+ errors
+ - 'size 1 != size'
+ - attr name mismatch
+ - Regular scrub request, deep-scrub details will be lost
+ - candidate size [0-9]+ info size [0-9]+ mismatch
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ conf:
+ osd:
+ filestore debug inject read err: true
+ bluestore debug inject read err: true
+tasks:
+- repair_test:
+
diff --git a/qa/suites/rados/basic/tasks/rgw_snaps.yaml b/qa/suites/rados/basic/tasks/rgw_snaps.yaml
new file mode 100644
index 00000000..c94b7b2b
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/rgw_snaps.yaml
@@ -0,0 +1,41 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ debug rgw: 20
+ debug ms: 1
+ osd:
+ osd_max_omap_entries_per_request: 10
+tasks:
+- rgw:
+ client.0:
+- ceph_manager.wait_for_pools:
+ kwargs:
+ pools:
+ - default.rgw.buckets.data
+ - default.rgw.buckets.index
+ - .rgw.root
+ - default.rgw.control
+ - default.rgw.meta
+ - default.rgw.log
+- thrash_pool_snaps:
+ pools:
+ - default.rgw.buckets.data
+ - default.rgw.buckets.index
+ - .rgw.root
+ - default.rgw.control
+ - default.rgw.meta
+ - default.rgw.log
+- s3readwrite:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+ readwrite:
+ bucket: rwtest
+ readers: 10
+ writers: 3
+ duration: 300
+ files:
+ num: 10
+ size: 2000
+ stddev: 500
diff --git a/qa/suites/rados/basic/tasks/scrub_test.yaml b/qa/suites/rados/basic/tasks/scrub_test.yaml
new file mode 100644
index 00000000..00e85f9e
--- /dev/null
+++ b/qa/suites/rados/basic/tasks/scrub_test.yaml
@@ -0,0 +1,30 @@
+overrides:
+ ceph:
+ wait-for-scrub: false
+ log-whitelist:
+ - '!= data_digest'
+ - '!= omap_digest'
+ - '!= size'
+ - 'deep-scrub 0 missing, 1 inconsistent objects'
+ - 'deep-scrub [0-9]+ errors'
+ - 'repair 0 missing, 1 inconsistent objects'
+ - 'repair [0-9]+ errors, [0-9]+ fixed'
+ - 'shard [0-9]+ .* : missing'
+ - 'deep-scrub 1 missing, 1 inconsistent objects'
+ - 'does not match object info size'
+ - 'attr name mistmatch'
+ - 'deep-scrub 1 missing, 0 inconsistent objects'
+ - 'failed to pick suitable auth object'
+ - 'candidate size [0-9]+ info size [0-9]+ mismatch'
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(OSD_SCRUB_ERRORS\)
+ - \(TOO_FEW_PGS\)
+ conf:
+ osd:
+ osd deep scrub update digest min age: 0
+ osd skip data digest: false
+tasks:
+- scrub_test:
diff --git a/qa/suites/rados/dashboard/% b/qa/suites/rados/dashboard/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/dashboard/%
diff --git a/qa/suites/rados/dashboard/.qa b/qa/suites/rados/dashboard/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/dashboard/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/dashboard/clusters/+ b/qa/suites/rados/dashboard/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/dashboard/clusters/+
diff --git a/qa/suites/rados/dashboard/clusters/.qa b/qa/suites/rados/dashboard/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/dashboard/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/dashboard/clusters/2-node-mgr.yaml b/qa/suites/rados/dashboard/clusters/2-node-mgr.yaml
new file mode 120000
index 00000000..8a0b9123
--- /dev/null
+++ b/qa/suites/rados/dashboard/clusters/2-node-mgr.yaml
@@ -0,0 +1 @@
+.qa/clusters/2-node-mgr.yaml \ No newline at end of file
diff --git a/qa/suites/rados/dashboard/debug/.qa b/qa/suites/rados/dashboard/debug/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/dashboard/debug/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/dashboard/debug/mgr.yaml b/qa/suites/rados/dashboard/debug/mgr.yaml
new file mode 120000
index 00000000..651e5f8a
--- /dev/null
+++ b/qa/suites/rados/dashboard/debug/mgr.yaml
@@ -0,0 +1 @@
+.qa/debug/mgr.yaml \ No newline at end of file
diff --git a/qa/suites/rados/dashboard/objectstore b/qa/suites/rados/dashboard/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/dashboard/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/dashboard/supported-random-distro$ b/qa/suites/rados/dashboard/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/dashboard/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/dashboard/tasks/.qa b/qa/suites/rados/dashboard/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/dashboard/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/dashboard/tasks/dashboard.yaml b/qa/suites/rados/dashboard/tasks/dashboard.yaml
new file mode 100644
index 00000000..ad6adc7c
--- /dev/null
+++ b/qa/suites/rados/dashboard/tasks/dashboard.yaml
@@ -0,0 +1,51 @@
+
+tasks:
+ - install:
+ - ceph:
+ # tests may leave mgrs broken, so don't try and call into them
+ # to invoke e.g. pg dump during teardown.
+ wait-for-scrub: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - replacing it with standby
+ - No standby daemons available
+ - \(FS_DEGRADED\)
+ - \(MDS_FAILED\)
+ - \(MDS_DEGRADED\)
+ - \(FS_WITH_FAILED_MDS\)
+ - \(MDS_DAMAGE\)
+ - \(MDS_ALL_DOWN\)
+ - \(MDS_UP_LESS_THAN_MAX\)
+ - \(OSD_DOWN\)
+ - \(OSD_HOST_DOWN\)
+ - \(POOL_APP_NOT_ENABLED\)
+ - pauserd,pausewr flag\(s\) set
+ - Monitor daemon marked osd\.[[:digit:]]+ down, but it is still running
+ - evicting unresponsive client .+
+ - rgw: [client.0]
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.mgr.test_dashboard
+ - tasks.mgr.dashboard.test_auth
+ - tasks.mgr.dashboard.test_cephfs
+ - tasks.mgr.dashboard.test_cluster_configuration
+ - tasks.mgr.dashboard.test_health
+ - tasks.mgr.dashboard.test_host
+ - tasks.mgr.dashboard.test_logs
+ - tasks.mgr.dashboard.test_monitor
+ - tasks.mgr.dashboard.test_osd
+ - tasks.mgr.dashboard.test_perf_counters
+ - tasks.mgr.dashboard.test_summary
+ - tasks.mgr.dashboard.test_rgw
+ - tasks.mgr.dashboard.test_rbd
+ - tasks.mgr.dashboard.test_pool
+ - tasks.mgr.dashboard.test_requests
+ - tasks.mgr.dashboard.test_role
+ - tasks.mgr.dashboard.test_settings
+ - tasks.mgr.dashboard.test_user
+ - tasks.mgr.dashboard.test_erasure_code_profile
+ - tasks.mgr.dashboard.test_mgr_module
+ - tasks.mgr.dashboard.test_ganesha
diff --git a/qa/suites/rados/mgr/% b/qa/suites/rados/mgr/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/mgr/%
diff --git a/qa/suites/rados/mgr/.qa b/qa/suites/rados/mgr/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/mgr/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/mgr/clusters/+ b/qa/suites/rados/mgr/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/mgr/clusters/+
diff --git a/qa/suites/rados/mgr/clusters/.qa b/qa/suites/rados/mgr/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/mgr/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/mgr/clusters/2-node-mgr.yaml b/qa/suites/rados/mgr/clusters/2-node-mgr.yaml
new file mode 120000
index 00000000..8a0b9123
--- /dev/null
+++ b/qa/suites/rados/mgr/clusters/2-node-mgr.yaml
@@ -0,0 +1 @@
+.qa/clusters/2-node-mgr.yaml \ No newline at end of file
diff --git a/qa/suites/rados/mgr/debug/.qa b/qa/suites/rados/mgr/debug/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/mgr/debug/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/mgr/debug/mgr.yaml b/qa/suites/rados/mgr/debug/mgr.yaml
new file mode 120000
index 00000000..651e5f8a
--- /dev/null
+++ b/qa/suites/rados/mgr/debug/mgr.yaml
@@ -0,0 +1 @@
+.qa/debug/mgr.yaml \ No newline at end of file
diff --git a/qa/suites/rados/mgr/objectstore b/qa/suites/rados/mgr/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/mgr/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/mgr/supported-random-distro$ b/qa/suites/rados/mgr/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/mgr/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/mgr/tasks/.qa b/qa/suites/rados/mgr/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/mgr/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/mgr/tasks/crash.yaml b/qa/suites/rados/mgr/tasks/crash.yaml
new file mode 100644
index 00000000..7b4c4446
--- /dev/null
+++ b/qa/suites/rados/mgr/tasks/crash.yaml
@@ -0,0 +1,17 @@
+
+tasks:
+ - install:
+ - ceph:
+ # tests may leave mgrs broken, so don't try and call into them
+ # to invoke e.g. pg dump during teardown.
+ wait-for-scrub: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(RECENT_CRASH\)
+ - replacing it with standby
+ - No standby daemons available
+ - cephfs_test_runner:
+ modules:
+ - tasks.mgr.test_crash
diff --git a/qa/suites/rados/mgr/tasks/failover.yaml b/qa/suites/rados/mgr/tasks/failover.yaml
new file mode 100644
index 00000000..34be4715
--- /dev/null
+++ b/qa/suites/rados/mgr/tasks/failover.yaml
@@ -0,0 +1,16 @@
+
+tasks:
+ - install:
+ - ceph:
+ # tests may leave mgrs broken, so don't try and call into them
+ # to invoke e.g. pg dump during teardown.
+ wait-for-scrub: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - replacing it with standby
+ - No standby daemons available
+ - cephfs_test_runner:
+ modules:
+ - tasks.mgr.test_failover
diff --git a/qa/suites/rados/mgr/tasks/insights.yaml b/qa/suites/rados/mgr/tasks/insights.yaml
new file mode 100644
index 00000000..52160665
--- /dev/null
+++ b/qa/suites/rados/mgr/tasks/insights.yaml
@@ -0,0 +1,19 @@
+
+tasks:
+ - install:
+ - ceph:
+ # tests may leave mgrs broken, so don't try and call into them
+ # to invoke e.g. pg dump during teardown.
+ wait-for-scrub: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(MGR_DOWN\)
+ - \(MGR_INSIGHTS_WARNING\)
+ - \(insights_health_check
+ - \(PG_
+ - \(RECENT_CRASH\)
+ - replacing it with standby
+ - No standby daemons available
+ - cephfs_test_runner:
+ modules:
+ - tasks.mgr.test_insights
diff --git a/qa/suites/rados/mgr/tasks/module_selftest.yaml b/qa/suites/rados/mgr/tasks/module_selftest.yaml
new file mode 100644
index 00000000..11053d6a
--- /dev/null
+++ b/qa/suites/rados/mgr/tasks/module_selftest.yaml
@@ -0,0 +1,25 @@
+
+tasks:
+ - install:
+ - ceph:
+ # tests may leave mgrs broken, so don't try and call into them
+ # to invoke e.g. pg dump during teardown.
+ wait-for-scrub: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - replacing it with standby
+ - No standby daemons available
+ - Reduced data availability
+ - Degraded data redundancy
+ - objects misplaced
+ - Synthetic exception in serve
+ - influxdb python module not found
+ - \(MGR_ZABBIX_
+ - foo bar
+ - Failed to open Telegraf
+ - evicting unresponsive client
+ - cephfs_test_runner:
+ modules:
+ - tasks.mgr.test_module_selftest
diff --git a/qa/suites/rados/mgr/tasks/orchestrator_cli.yaml b/qa/suites/rados/mgr/tasks/orchestrator_cli.yaml
new file mode 100644
index 00000000..65b1d78b
--- /dev/null
+++ b/qa/suites/rados/mgr/tasks/orchestrator_cli.yaml
@@ -0,0 +1,18 @@
+
+tasks:
+ - install:
+ - ceph:
+ # tests may leave mgrs broken, so don't try and call into them
+ # to invoke e.g. pg dump during teardown.
+ wait-for-scrub: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(MGR_DOWN\)
+ - \(MGR_INSIGHTS_WARNING\)
+ - \(insights_health_check
+ - \(PG_
+ - replacing it with standby
+ - No standby daemons available
+ - cephfs_test_runner:
+ modules:
+ - tasks.mgr.test_orchestrator_cli \ No newline at end of file
diff --git a/qa/suites/rados/mgr/tasks/progress.yaml b/qa/suites/rados/mgr/tasks/progress.yaml
new file mode 100644
index 00000000..78462575
--- /dev/null
+++ b/qa/suites/rados/mgr/tasks/progress.yaml
@@ -0,0 +1,24 @@
+
+tasks:
+ - install:
+ - ceph:
+ config:
+ global:
+ osd pool default size : 3
+ osd pool default min size : 2
+ # tests may leave mgrs broken, so don't try and call into them
+ # to invoke e.g. pg dump during teardown.
+ wait-for-scrub: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(MGR_DOWN\)
+ - \(MDS_ALL_DOWN\)
+ - \(MDS_UP_LESS_THAN_MAX\)
+ - \(FS_WITH_FAILED_MDS\)
+ - \(FS_DEGRADED\)
+ - \(PG_
+ - replacing it with standby
+ - No standby daemons available
+ - cephfs_test_runner:
+ modules:
+ - tasks.mgr.test_progress
diff --git a/qa/suites/rados/mgr/tasks/prometheus.yaml b/qa/suites/rados/mgr/tasks/prometheus.yaml
new file mode 100644
index 00000000..1a777681
--- /dev/null
+++ b/qa/suites/rados/mgr/tasks/prometheus.yaml
@@ -0,0 +1,16 @@
+
+tasks:
+ - install:
+ - ceph:
+ # tests may leave mgrs broken, so don't try and call into them
+ # to invoke e.g. pg dump during teardown.
+ wait-for-scrub: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - replacing it with standby
+ - No standby daemons available
+ - cephfs_test_runner:
+ modules:
+ - tasks.mgr.test_prometheus
diff --git a/qa/suites/rados/mgr/tasks/ssh_orchestrator.yaml b/qa/suites/rados/mgr/tasks/ssh_orchestrator.yaml
new file mode 100644
index 00000000..cd606f76
--- /dev/null
+++ b/qa/suites/rados/mgr/tasks/ssh_orchestrator.yaml
@@ -0,0 +1,18 @@
+
+tasks:
+ - install:
+ - ceph:
+ # tests may leave mgrs broken, so don't try and call into them
+ # to invoke e.g. pg dump during teardown.
+ wait-for-scrub: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(MGR_DOWN\)
+ - \(MGR_INSIGHTS_WARNING\)
+ - \(insights_health_check
+ - \(PG_
+ - replacing it with standby
+ - No standby daemons available
+ - cephfs_test_runner:
+ modules:
+ - tasks.mgr.test_ssh_orchestrator
diff --git a/qa/suites/rados/mgr/tasks/workunits.yaml b/qa/suites/rados/mgr/tasks/workunits.yaml
new file mode 100644
index 00000000..d7261f44
--- /dev/null
+++ b/qa/suites/rados/mgr/tasks/workunits.yaml
@@ -0,0 +1,16 @@
+tasks:
+ - install:
+ - ceph:
+ # tests may leave mgrs broken, so don't try and call into them
+ # to invoke e.g. pg dump during teardown.
+ wait-for-scrub: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - replacing it with standby
+ - No standby daemons available
+ - workunit:
+ clients:
+ client.0:
+ - mgr \ No newline at end of file
diff --git a/qa/suites/rados/monthrash/% b/qa/suites/rados/monthrash/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/monthrash/%
diff --git a/qa/suites/rados/monthrash/.qa b/qa/suites/rados/monthrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/monthrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/monthrash/ceph.yaml b/qa/suites/rados/monthrash/ceph.yaml
new file mode 100644
index 00000000..6c53b315
--- /dev/null
+++ b/qa/suites/rados/monthrash/ceph.yaml
@@ -0,0 +1,25 @@
+overrides:
+ ceph:
+ conf:
+ mon:
+ mon min osdmap epochs: 25
+ paxos service trim min: 5
+ # prune full osdmaps regularly
+ mon osdmap full prune min: 15
+ mon osdmap full prune interval: 2
+ mon osdmap full prune txsize: 2
+ mon scrub inject crc mismatch: 0.01
+ mon scrub inject missing keys: 0.05
+# thrashing monitors may make mgr have trouble w/ its keepalive
+ log-whitelist:
+ - ScrubResult
+ - scrub mismatch
+ - overall HEALTH_
+ - \(MGR_DOWN\)
+# slow mons -> slow peering -> PG_AVAILABILITY
+ - \(PG_AVAILABILITY\)
+ - \(SLOW_OPS\)
+ - slow request
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/rados/monthrash/clusters/.qa b/qa/suites/rados/monthrash/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/monthrash/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/monthrash/clusters/3-mons.yaml b/qa/suites/rados/monthrash/clusters/3-mons.yaml
new file mode 100644
index 00000000..4b721ef8
--- /dev/null
+++ b/qa/suites/rados/monthrash/clusters/3-mons.yaml
@@ -0,0 +1,7 @@
+roles:
+- [mon.a, mon.c, osd.0, osd.1, osd.2]
+- [mon.b, mgr.x, osd.3, osd.4, osd.5, client.0]
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
diff --git a/qa/suites/rados/monthrash/clusters/9-mons.yaml b/qa/suites/rados/monthrash/clusters/9-mons.yaml
new file mode 100644
index 00000000..a2874c1d
--- /dev/null
+++ b/qa/suites/rados/monthrash/clusters/9-mons.yaml
@@ -0,0 +1,7 @@
+roles:
+- [mon.a, mon.b, mon.c, mon.d, mon.e, osd.0, osd.1, osd.2]
+- [mon.f, mon.g, mon.h, mon.i, mgr.x, osd.3, osd.4, osd.5, client.0]
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
diff --git a/qa/suites/rados/monthrash/msgr b/qa/suites/rados/monthrash/msgr
new file mode 120000
index 00000000..57bee80d
--- /dev/null
+++ b/qa/suites/rados/monthrash/msgr
@@ -0,0 +1 @@
+.qa/msgr \ No newline at end of file
diff --git a/qa/suites/rados/monthrash/msgr-failures/.qa b/qa/suites/rados/monthrash/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/monthrash/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/monthrash/msgr-failures/few.yaml b/qa/suites/rados/monthrash/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/rados/monthrash/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/monthrash/msgr-failures/mon-delay.yaml b/qa/suites/rados/monthrash/msgr-failures/mon-delay.yaml
new file mode 100644
index 00000000..fcd8ca7c
--- /dev/null
+++ b/qa/suites/rados/monthrash/msgr-failures/mon-delay.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 2500
+ ms inject delay type: mon
+ ms inject delay probability: .005
+ ms inject delay max: 1
+ ms inject internal delays: .002
+ mgr:
+ debug monc: 10
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/monthrash/objectstore b/qa/suites/rados/monthrash/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/monthrash/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/monthrash/rados.yaml b/qa/suites/rados/monthrash/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/monthrash/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/monthrash/supported-random-distro$ b/qa/suites/rados/monthrash/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/monthrash/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/monthrash/thrashers/.qa b/qa/suites/rados/monthrash/thrashers/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/monthrash/thrashers/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/monthrash/thrashers/force-sync-many.yaml b/qa/suites/rados/monthrash/thrashers/force-sync-many.yaml
new file mode 100644
index 00000000..2d1ba882
--- /dev/null
+++ b/qa/suites/rados/monthrash/thrashers/force-sync-many.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(MON_DOWN\)
+ - \(TOO_FEW_PGS\)
+tasks:
+- mon_thrash:
+ revive_delay: 90
+ thrash_delay: 1
+ thrash_store: true
+ thrash_many: true
diff --git a/qa/suites/rados/monthrash/thrashers/many.yaml b/qa/suites/rados/monthrash/thrashers/many.yaml
new file mode 100644
index 00000000..fa829b34
--- /dev/null
+++ b/qa/suites/rados/monthrash/thrashers/many.yaml
@@ -0,0 +1,16 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(MON_DOWN\)
+ conf:
+ osd:
+ mon client ping interval: 4
+ mon client ping timeout: 12
+tasks:
+- mon_thrash:
+ revive_delay: 20
+ thrash_delay: 1
+ thrash_many: true
+ freeze_mon_duration: 20
+ freeze_mon_probability: 10
diff --git a/qa/suites/rados/monthrash/thrashers/one.yaml b/qa/suites/rados/monthrash/thrashers/one.yaml
new file mode 100644
index 00000000..041cee0b
--- /dev/null
+++ b/qa/suites/rados/monthrash/thrashers/one.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(MON_DOWN\)
+tasks:
+- mon_thrash:
+ revive_delay: 20
+ thrash_delay: 1
diff --git a/qa/suites/rados/monthrash/thrashers/sync-many.yaml b/qa/suites/rados/monthrash/thrashers/sync-many.yaml
new file mode 100644
index 00000000..14f41f7f
--- /dev/null
+++ b/qa/suites/rados/monthrash/thrashers/sync-many.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(MON_DOWN\)
+ conf:
+ mon:
+ paxos min: 10
+ paxos trim min: 10
+tasks:
+- mon_thrash:
+ revive_delay: 90
+ thrash_delay: 1
+ thrash_many: true
diff --git a/qa/suites/rados/monthrash/thrashers/sync.yaml b/qa/suites/rados/monthrash/thrashers/sync.yaml
new file mode 100644
index 00000000..08b1522c
--- /dev/null
+++ b/qa/suites/rados/monthrash/thrashers/sync.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(MON_DOWN\)
+ conf:
+ mon:
+ paxos min: 10
+ paxos trim min: 10
+tasks:
+- mon_thrash:
+ revive_delay: 90
+ thrash_delay: 1
diff --git a/qa/suites/rados/monthrash/workloads/.qa b/qa/suites/rados/monthrash/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/monthrash/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/monthrash/workloads/pool-create-delete.yaml b/qa/suites/rados/monthrash/workloads/pool-create-delete.yaml
new file mode 100644
index 00000000..c6b00b48
--- /dev/null
+++ b/qa/suites/rados/monthrash/workloads/pool-create-delete.yaml
@@ -0,0 +1,58 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - slow request
+ - overall HEALTH_
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- exec:
+ client.0:
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
+ - ceph_test_rados_delete_pools_parallel
diff --git a/qa/suites/rados/monthrash/workloads/rados_5925.yaml b/qa/suites/rados/monthrash/workloads/rados_5925.yaml
new file mode 100644
index 00000000..940d3a8e
--- /dev/null
+++ b/qa/suites/rados/monthrash/workloads/rados_5925.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- exec:
+ client.0:
+ - ceph_test_rados_delete_pools_parallel --debug_objecter 20 --debug_ms 1 --debug_rados 20 --debug_monc 20
diff --git a/qa/suites/rados/monthrash/workloads/rados_api_tests.yaml b/qa/suites/rados/monthrash/workloads/rados_api_tests.yaml
new file mode 100644
index 00000000..f0bd5685
--- /dev/null
+++ b/qa/suites/rados/monthrash/workloads/rados_api_tests.yaml
@@ -0,0 +1,26 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - reached quota
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(CACHE_POOL_NEAR_FULL\)
+ - \(POOL_FULL\)
+ - \(SLOW_OPS\)
+ - \(MON_DOWN\)
+ - \(PG_
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(SMALLER_PGP_NUM\)
+ - slow request
+ conf:
+ global:
+ debug objecter: 20
+ debug rados: 20
+ debug ms: 1
+ mon:
+ mon warn on pool no app: false
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rados/test.sh
diff --git a/qa/suites/rados/monthrash/workloads/rados_mon_osdmap_prune.yaml b/qa/suites/rados/monthrash/workloads/rados_mon_osdmap_prune.yaml
new file mode 100644
index 00000000..cca902af
--- /dev/null
+++ b/qa/suites/rados/monthrash/workloads/rados_mon_osdmap_prune.yaml
@@ -0,0 +1,22 @@
+overrides:
+ ceph:
+ conf:
+ mon:
+ mon debug extra checks: true
+ mon min osdmap epochs: 100
+ mon osdmap full prune enabled: true
+ mon osdmap full prune min: 200
+ mon osdmap full prune interval: 10
+ mon osdmap full prune txsize: 100
+ osd:
+ osd beacon report interval: 10
+ log-whitelist:
+ # setting/unsetting noup will trigger health warns,
+ # causing tests to fail due to health warns, even if
+ # the tests themselves are successful.
+ - \(OSDMAP_FLAGS\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - mon/test_mon_osdmap_prune.sh
diff --git a/qa/suites/rados/monthrash/workloads/rados_mon_workunits.yaml b/qa/suites/rados/monthrash/workloads/rados_mon_workunits.yaml
new file mode 100644
index 00000000..63b88c0d
--- /dev/null
+++ b/qa/suites/rados/monthrash/workloads/rados_mon_workunits.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(PG_
+ - \(MON_DOWN\)
+ - \(AUTH_BAD_CAPS\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - mon/pool_ops.sh
+ - mon/crush_ops.sh
+ - mon/osd.sh
+ - mon/caps.sh
+
diff --git a/qa/suites/rados/monthrash/workloads/snaps-few-objects.yaml b/qa/suites/rados/monthrash/workloads/snaps-few-objects.yaml
new file mode 100644
index 00000000..aa82d973
--- /dev/null
+++ b/qa/suites/rados/monthrash/workloads/snaps-few-objects.yaml
@@ -0,0 +1,13 @@
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
diff --git a/qa/suites/rados/multimon/% b/qa/suites/rados/multimon/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/multimon/%
diff --git a/qa/suites/rados/multimon/.qa b/qa/suites/rados/multimon/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/multimon/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/multimon/clusters/.qa b/qa/suites/rados/multimon/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/multimon/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/multimon/clusters/21.yaml b/qa/suites/rados/multimon/clusters/21.yaml
new file mode 100644
index 00000000..aae96866
--- /dev/null
+++ b/qa/suites/rados/multimon/clusters/21.yaml
@@ -0,0 +1,8 @@
+roles:
+- [mon.a, mon.d, mon.g, mon.j, mon.m, mon.p, mon.s]
+- [mon.b, mon.e, mon.h, mon.k, mon.n, mon.q, mon.t, mgr.x]
+- [mon.c, mon.f, mon.i, mon.l, mon.o, mon.r, mon.u]
+openstack:
+- volumes: # attached to each instance
+ count: 1
+ size: 10 # GB
diff --git a/qa/suites/rados/multimon/clusters/3.yaml b/qa/suites/rados/multimon/clusters/3.yaml
new file mode 100644
index 00000000..11adef16
--- /dev/null
+++ b/qa/suites/rados/multimon/clusters/3.yaml
@@ -0,0 +1,7 @@
+roles:
+- [mon.a, mon.c]
+- [mon.b, mgr.x]
+openstack:
+- volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
diff --git a/qa/suites/rados/multimon/clusters/6.yaml b/qa/suites/rados/multimon/clusters/6.yaml
new file mode 100644
index 00000000..29c74dc7
--- /dev/null
+++ b/qa/suites/rados/multimon/clusters/6.yaml
@@ -0,0 +1,7 @@
+roles:
+- [mon.a, mon.c, mon.e, mgr.x]
+- [mon.b, mon.d, mon.f, mgr.y]
+openstack:
+- volumes: # attached to each instance
+ count: 1
+ size: 10 # GB
diff --git a/qa/suites/rados/multimon/clusters/9.yaml b/qa/suites/rados/multimon/clusters/9.yaml
new file mode 100644
index 00000000..d5116855
--- /dev/null
+++ b/qa/suites/rados/multimon/clusters/9.yaml
@@ -0,0 +1,8 @@
+roles:
+- [mon.a, mon.d, mon.g]
+- [mon.b, mon.e, mon.h, mgr.x]
+- [mon.c, mon.f, mon.i]
+openstack:
+- volumes: # attached to each instance
+ count: 1
+ size: 10 # GB
diff --git a/qa/suites/rados/multimon/msgr b/qa/suites/rados/multimon/msgr
new file mode 120000
index 00000000..57bee80d
--- /dev/null
+++ b/qa/suites/rados/multimon/msgr
@@ -0,0 +1 @@
+.qa/msgr \ No newline at end of file
diff --git a/qa/suites/rados/multimon/msgr-failures/.qa b/qa/suites/rados/multimon/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/multimon/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/multimon/msgr-failures/few.yaml b/qa/suites/rados/multimon/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/rados/multimon/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/multimon/msgr-failures/many.yaml b/qa/suites/rados/multimon/msgr-failures/many.yaml
new file mode 100644
index 00000000..ffeb5f68
--- /dev/null
+++ b/qa/suites/rados/multimon/msgr-failures/many.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 1000
+ mon mgr beacon grace: 90
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/multimon/no_pools.yaml b/qa/suites/rados/multimon/no_pools.yaml
new file mode 100644
index 00000000..37d50105
--- /dev/null
+++ b/qa/suites/rados/multimon/no_pools.yaml
@@ -0,0 +1,3 @@
+overrides:
+ ceph:
+ create_rbd_pool: false
diff --git a/qa/suites/rados/multimon/objectstore b/qa/suites/rados/multimon/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/multimon/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/multimon/rados.yaml b/qa/suites/rados/multimon/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/multimon/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/multimon/supported-random-distro$ b/qa/suites/rados/multimon/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/multimon/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/multimon/tasks/.qa b/qa/suites/rados/multimon/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/multimon/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/multimon/tasks/mon_clock_no_skews.yaml b/qa/suites/rados/multimon/tasks/mon_clock_no_skews.yaml
new file mode 100644
index 00000000..a4cea8f3
--- /dev/null
+++ b/qa/suites/rados/multimon/tasks/mon_clock_no_skews.yaml
@@ -0,0 +1,11 @@
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - slow request
+ - .*clock.*skew.*
+ - clocks not synchronized
+ - overall HEALTH_
+ - \(MON_CLOCK_SKEW\)
+- mon_clock_skew_check:
+ expect-skew: false
diff --git a/qa/suites/rados/multimon/tasks/mon_clock_with_skews.yaml b/qa/suites/rados/multimon/tasks/mon_clock_with_skews.yaml
new file mode 100644
index 00000000..abfc3a1c
--- /dev/null
+++ b/qa/suites/rados/multimon/tasks/mon_clock_with_skews.yaml
@@ -0,0 +1,24 @@
+tasks:
+- install:
+- exec:
+ mon.b:
+ - sudo systemctl stop chronyd.service || true
+ - sudo systemctl stop systemd-timesync.service || true
+ - sudo systemctl stop ntpd.service || true
+ - sudo systemctl stop ntp.service || true
+ - date -u -s @$(expr $(date -u +%s) + 2)
+- ceph:
+ wait-for-healthy: false
+ log-whitelist:
+ - .*clock.*skew.*
+ - clocks not synchronized
+ - overall HEALTH_
+ - \(MON_CLOCK_SKEW\)
+ - \(MGR_DOWN\)
+ - \(MON_DOWN\)
+ - \(PG_
+ - \(SLOW_OPS\)
+ - No standby daemons available
+ - slow request
+- mon_clock_skew_check:
+ expect-skew: true
diff --git a/qa/suites/rados/multimon/tasks/mon_recovery.yaml b/qa/suites/rados/multimon/tasks/mon_recovery.yaml
new file mode 100644
index 00000000..14da275e
--- /dev/null
+++ b/qa/suites/rados/multimon/tasks/mon_recovery.yaml
@@ -0,0 +1,10 @@
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(MON_DOWN\)
+ - \(PG_AVAILABILITY\)
+ - \(SLOW_OPS\)
+ - slow request
+- mon_recovery:
diff --git a/qa/suites/rados/objectstore/% b/qa/suites/rados/objectstore/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/objectstore/%
diff --git a/qa/suites/rados/objectstore/.qa b/qa/suites/rados/objectstore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/objectstore/backends/.qa b/qa/suites/rados/objectstore/backends/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/objectstore/backends/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/objectstore/backends/alloc-hint.yaml b/qa/suites/rados/objectstore/backends/alloc-hint.yaml
new file mode 100644
index 00000000..047b02fa
--- /dev/null
+++ b/qa/suites/rados/objectstore/backends/alloc-hint.yaml
@@ -0,0 +1,22 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, client.0]
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+
+overrides:
+ ceph:
+ fs: xfs
+ conf:
+ osd:
+ filestore xfs extsize: true
+ osd objectstore: filestore
+
+tasks:
+- install:
+- ceph:
+- workunit:
+ clients:
+ all:
+ - rados/test_alloc_hint.sh
diff --git a/qa/suites/rados/objectstore/backends/ceph_objectstore_tool.yaml b/qa/suites/rados/objectstore/backends/ceph_objectstore_tool.yaml
new file mode 100644
index 00000000..042bd065
--- /dev/null
+++ b/qa/suites/rados/objectstore/backends/ceph_objectstore_tool.yaml
@@ -0,0 +1,25 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, osd.3, osd.4, osd.5, client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 6
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ conf:
+ global:
+ osd max object name len: 460
+ osd max object namespace len: 64
+ osd:
+ osd objectstore: filestore
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(TOO_FEW_PGS\)
+ - \(POOL_APP_NOT_ENABLED\)
+- ceph_objectstore_tool:
+ objects: 20
diff --git a/qa/suites/rados/objectstore/backends/filejournal.yaml b/qa/suites/rados/objectstore/backends/filejournal.yaml
new file mode 100644
index 00000000..b0af8008
--- /dev/null
+++ b/qa/suites/rados/objectstore/backends/filejournal.yaml
@@ -0,0 +1,13 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- exec:
+ client.0:
+ - ceph_test_filejournal
diff --git a/qa/suites/rados/objectstore/backends/filestore-idempotent-aio-journal.yaml b/qa/suites/rados/objectstore/backends/filestore-idempotent-aio-journal.yaml
new file mode 100644
index 00000000..58b5197d
--- /dev/null
+++ b/qa/suites/rados/objectstore/backends/filestore-idempotent-aio-journal.yaml
@@ -0,0 +1,14 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ conf:
+ global:
+ journal aio: true
+- filestore_idempotent:
diff --git a/qa/suites/rados/objectstore/backends/filestore-idempotent.yaml b/qa/suites/rados/objectstore/backends/filestore-idempotent.yaml
new file mode 100644
index 00000000..2d3f3c69
--- /dev/null
+++ b/qa/suites/rados/objectstore/backends/filestore-idempotent.yaml
@@ -0,0 +1,11 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- filestore_idempotent:
diff --git a/qa/suites/rados/objectstore/backends/fusestore.yaml b/qa/suites/rados/objectstore/backends/fusestore.yaml
new file mode 100644
index 00000000..1c34fcae
--- /dev/null
+++ b/qa/suites/rados/objectstore/backends/fusestore.yaml
@@ -0,0 +1,9 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- workunit:
+ clients:
+ all:
+ - objectstore/test_fuse.sh
+
diff --git a/qa/suites/rados/objectstore/backends/keyvaluedb.yaml b/qa/suites/rados/objectstore/backends/keyvaluedb.yaml
new file mode 100644
index 00000000..efff8d37
--- /dev/null
+++ b/qa/suites/rados/objectstore/backends/keyvaluedb.yaml
@@ -0,0 +1,8 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- exec:
+ client.0:
+ - mkdir $TESTDIR/kvtest && cd $TESTDIR/kvtest && ceph_test_keyvaluedb
+ - rm -rf $TESTDIR/kvtest
diff --git a/qa/suites/rados/objectstore/backends/objectcacher-stress.yaml b/qa/suites/rados/objectstore/backends/objectcacher-stress.yaml
new file mode 100644
index 00000000..e407a391
--- /dev/null
+++ b/qa/suites/rados/objectstore/backends/objectcacher-stress.yaml
@@ -0,0 +1,14 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- workunit:
+ clients:
+ all:
+ - osdc/stress_objectcacher.sh
diff --git a/qa/suites/rados/objectstore/backends/objectstore.yaml b/qa/suites/rados/objectstore/backends/objectstore.yaml
new file mode 100644
index 00000000..d68270a8
--- /dev/null
+++ b/qa/suites/rados/objectstore/backends/objectstore.yaml
@@ -0,0 +1,12 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+tasks:
+- install:
+- exec:
+ client.0:
+ - mkdir $TESTDIR/archive/ostest && cd $TESTDIR/archive/ostest && ulimit -Sn 16384 && CEPH_ARGS="--no-log-to-stderr --log-file $TESTDIR/archive/ceph_test_objectstore.log --debug-filestore 20 --debug-bluestore 20" ceph_test_objectstore --gtest_filter=-*/3 --gtest_catch_exceptions=0
+ - rm -rf $TESTDIR/archive/ostest
diff --git a/qa/suites/rados/objectstore/supported-random-distro$ b/qa/suites/rados/objectstore/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/objectstore/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/perf/% b/qa/suites/rados/perf/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/perf/%
diff --git a/qa/suites/rados/perf/.qa b/qa/suites/rados/perf/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/perf/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/perf/ceph.yaml b/qa/suites/rados/perf/ceph.yaml
new file mode 100644
index 00000000..912dcbdc
--- /dev/null
+++ b/qa/suites/rados/perf/ceph.yaml
@@ -0,0 +1,14 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ wait-for-scrub: false
+ log-whitelist:
+ - \(PG_
+ - \(OSD_
+ - \(OBJECT_
+ - overall HEALTH
+- rgw: [client.0]
+- ssh_keys:
diff --git a/qa/suites/rados/perf/distros/ubuntu_16.04.yaml b/qa/suites/rados/perf/distros/ubuntu_16.04.yaml
new file mode 120000
index 00000000..a92e4060
--- /dev/null
+++ b/qa/suites/rados/perf/distros/ubuntu_16.04.yaml
@@ -0,0 +1 @@
+../../../../distros/supported-all-distro/ubuntu_16.04.yaml \ No newline at end of file
diff --git a/qa/suites/rados/perf/distros/ubuntu_latest.yaml b/qa/suites/rados/perf/distros/ubuntu_latest.yaml
new file mode 120000
index 00000000..f4d73c11
--- /dev/null
+++ b/qa/suites/rados/perf/distros/ubuntu_latest.yaml
@@ -0,0 +1 @@
+../../../../distros/supported-all-distro/ubuntu_latest.yaml \ No newline at end of file
diff --git a/qa/suites/rados/perf/objectstore b/qa/suites/rados/perf/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/perf/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/perf/openstack.yaml b/qa/suites/rados/perf/openstack.yaml
new file mode 100644
index 00000000..f4d1349b
--- /dev/null
+++ b/qa/suites/rados/perf/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 30 # GB
diff --git a/qa/suites/rados/perf/settings/.qa b/qa/suites/rados/perf/settings/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/perf/settings/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/perf/settings/optimized.yaml b/qa/suites/rados/perf/settings/optimized.yaml
new file mode 100644
index 00000000..5ebcb3ae
--- /dev/null
+++ b/qa/suites/rados/perf/settings/optimized.yaml
@@ -0,0 +1,76 @@
+overrides:
+ ceph:
+ conf:
+ mon:
+ debug mon: "0/0"
+ debug ms: "0/0"
+ debug paxos: "0/0"
+ osd:
+ debug filestore: "0/0"
+ debug journal: "0/0"
+ debug ms: "0/0"
+ debug osd: "0/0"
+ global:
+ auth client required: none
+ auth cluster required: none
+ auth service required: none
+ auth supported: none
+
+ debug lockdep: "0/0"
+ debug context: "0/0"
+ debug crush: "0/0"
+ debug mds: "0/0"
+ debug mds balancer: "0/0"
+ debug mds locker: "0/0"
+ debug mds log: "0/0"
+ debug mds log expire: "0/0"
+ debug mds migrator: "0/0"
+ debug buffer: "0/0"
+ debug timer: "0/0"
+ debug filer: "0/0"
+ debug striper: "0/0"
+ debug objecter: "0/0"
+ debug rados: "0/0"
+ debug rbd: "0/0"
+ debug rbd mirror: "0/0"
+ debug rbd replay: "0/0"
+ debug journaler: "0/0"
+ debug objectcacher: "0/0"
+ debug client: "0/0"
+ debug osd: "0/0"
+ debug optracker: "0/0"
+ debug objclass: "0/0"
+ debug filestore: "0/0"
+ debug journal: "0/0"
+ debug ms: "0/0"
+ debug mon: "0/0"
+ debug monc: "0/0"
+ debug paxos: "0/0"
+ debug tp: "0/0"
+ debug auth: "0/0"
+ debug crypto: "0/0"
+ debug finisher: "0/0"
+ debug heartbeatmap: "0/0"
+ debug perfcounter: "0/0"
+ debug rgw: "0/0"
+ debug rgw sync: "0/0"
+ debug civetweb: "0/0"
+ debug javaclient: "0/0"
+ debug asok: "0/0"
+ debug throttle: "0/0"
+ debug refs: "0/0"
+ debug xio: "0/0"
+ debug compressor: "0/0"
+ debug bluestore: "0/0"
+ debug bluefs: "0/0"
+ debug bdev: "0/0"
+ debug kstore: "0/0"
+ debug rocksdb: "0/0"
+ debug leveldb: "0/0"
+ debug memdb: "0/0"
+ debug kinetic: "0/0"
+ debug fuse: "0/0"
+ debug mgr: "0/0"
+ debug mgrc: "0/0"
+ debug dpdk: "0/0"
+ debug eventtrace: "0/0"
diff --git a/qa/suites/rados/perf/workloads/.qa b/qa/suites/rados/perf/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/perf/workloads/cosbench_64K_read_write.yaml b/qa/suites/rados/perf/workloads/cosbench_64K_read_write.yaml
new file mode 100644
index 00000000..e5bad129
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/cosbench_64K_read_write.yaml
@@ -0,0 +1,26 @@
+overrides:
+ rgw:
+ data_pool_pg_size: 64
+ index_pool_pg_size: 64
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ cosbench:
+ obj_size: [64KB]
+ osd_ra: [4096]
+ workers: 1
+ containers_max: 1000
+ objects_max: 100
+ mode: [mix]
+ template: [default]
+ rampup: 30
+ runtime: 300
+ rampdown: 30
+ containers: ["u(1,100)"]
+ objects: ["u(1,100)"]
+ ratio: [60]
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 1
+ iterations: 1
diff --git a/qa/suites/rados/perf/workloads/cosbench_64K_write.yaml b/qa/suites/rados/perf/workloads/cosbench_64K_write.yaml
new file mode 100644
index 00000000..81973da2
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/cosbench_64K_write.yaml
@@ -0,0 +1,26 @@
+overrides:
+ rgw:
+ data_pool_pg_size: 64
+ index_pool_pg_size: 64
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ cosbench:
+ obj_size: [64KB]
+ osd_ra: [4096]
+ workers: 1
+ containers_max: 1000
+ objects_max: 100
+ mode: [write]
+ template: [default]
+ rampup: 30
+ runtime: 300
+ rampdown: 30
+ containers: ["u(1,100)"]
+ objects: ["u(1,100)"]
+ ratio: [100]
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 1
+ iterations: 1
diff --git a/qa/suites/rados/perf/workloads/fio_4K_rand_read.yaml b/qa/suites/rados/perf/workloads/fio_4K_rand_read.yaml
new file mode 100644
index 00000000..61fdb5a9
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/fio_4K_rand_read.yaml
@@ -0,0 +1,25 @@
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ librbdfio:
+ op_size: [4096]
+ time: 60
+ mode: ['randread']
+ norandommap: True
+ vol_size: 4096
+ procs_per_volume: [1]
+ volumes_per_client: [2]
+ iodepth: [32]
+ osd_ra: [4096]
+ pool_profile: 'rbd'
+ log_avg_msec: 100
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ rbd:
+ pg_size: 128
+ pgp_size: 128
+ replication: 3
diff --git a/qa/suites/rados/perf/workloads/fio_4K_rand_rw.yaml b/qa/suites/rados/perf/workloads/fio_4K_rand_rw.yaml
new file mode 100644
index 00000000..9de8196b
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/fio_4K_rand_rw.yaml
@@ -0,0 +1,25 @@
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ librbdfio:
+ op_size: [4096]
+ time: 60
+ mode: ['randrw']
+ norandommap: True
+ vol_size: 4096
+ procs_per_volume: [1]
+ volumes_per_client: [2]
+ iodepth: [32]
+ osd_ra: [4096]
+ pool_profile: 'rbd'
+ log_avg_msec: 100
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ rbd:
+ pg_size: 128
+ pgp_size: 128
+ replication: 3
diff --git a/qa/suites/rados/perf/workloads/fio_4M_rand_read.yaml b/qa/suites/rados/perf/workloads/fio_4M_rand_read.yaml
new file mode 100644
index 00000000..f64e9bb8
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/fio_4M_rand_read.yaml
@@ -0,0 +1,25 @@
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ librbdfio:
+ op_size: [4194304]
+ time: 60
+ mode: ['randread']
+ norandommap: True
+ vol_size: 4096
+ procs_per_volume: [1]
+ volumes_per_client: [2]
+ iodepth: [32]
+ osd_ra: [4096]
+ pool_profile: 'rbd'
+ log_avg_msec: 100
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ rbd:
+ pg_size: 128
+ pgp_size: 128
+ replication: 3
diff --git a/qa/suites/rados/perf/workloads/fio_4M_rand_rw.yaml b/qa/suites/rados/perf/workloads/fio_4M_rand_rw.yaml
new file mode 100644
index 00000000..369fb268
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/fio_4M_rand_rw.yaml
@@ -0,0 +1,25 @@
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ librbdfio:
+ op_size: [4194304]
+ time: 60
+ mode: ['randrw']
+ norandommap: True
+ vol_size: 4096
+ procs_per_volume: [1]
+ volumes_per_client: [2]
+ iodepth: [32]
+ osd_ra: [4096]
+ pool_profile: 'rbd'
+ log_avg_msec: 100
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ rbd:
+ pg_size: 128
+ pgp_size: 128
+ replication: 3
diff --git a/qa/suites/rados/perf/workloads/fio_4M_rand_write.yaml b/qa/suites/rados/perf/workloads/fio_4M_rand_write.yaml
new file mode 100644
index 00000000..2ac8ef9e
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/fio_4M_rand_write.yaml
@@ -0,0 +1,25 @@
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ librbdfio:
+ op_size: [4194304]
+ time: 60
+ mode: ['randwrite']
+ norandommap: True
+ vol_size: 4096
+ procs_per_volume: [1]
+ volumes_per_client: [2]
+ iodepth: [32]
+ osd_ra: [4096]
+ pool_profile: 'rbd'
+ log_avg_msec: 100
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ rbd:
+ pg_size: 128
+ pgp_size: 128
+ replication: 3
diff --git a/qa/suites/rados/perf/workloads/radosbench_4K_rand_read.yaml b/qa/suites/rados/perf/workloads/radosbench_4K_rand_read.yaml
new file mode 100644
index 00000000..420f1950
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/radosbench_4K_rand_read.yaml
@@ -0,0 +1,25 @@
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ radosbench:
+ concurrent_ops: 4
+ concurrent_procs: 2
+ op_size: [4096]
+ pool_monitoring_list:
+ - collectl
+ pool_profile: 'replicated'
+ run_monitoring_list:
+ - collectl
+ time: 60
+ write_only: false
+ readmode: 'rand'
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ replicated:
+ pg_size: 256
+ pgp_size: 256
+ replication: 'replicated'
diff --git a/qa/suites/rados/perf/workloads/radosbench_4K_seq_read.yaml b/qa/suites/rados/perf/workloads/radosbench_4K_seq_read.yaml
new file mode 100644
index 00000000..e32cabaa
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/radosbench_4K_seq_read.yaml
@@ -0,0 +1,24 @@
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ radosbench:
+ concurrent_ops: 4
+ concurrent_procs: 2
+ op_size: [4096]
+ pool_monitoring_list:
+ - collectl
+ pool_profile: 'replicated'
+ run_monitoring_list:
+ - collectl
+ time: 60
+ write_only: false
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ replicated:
+ pg_size: 256
+ pgp_size: 256
+ replication: 'replicated'
diff --git a/qa/suites/rados/perf/workloads/radosbench_4M_rand_read.yaml b/qa/suites/rados/perf/workloads/radosbench_4M_rand_read.yaml
new file mode 100644
index 00000000..27b2466a
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/radosbench_4M_rand_read.yaml
@@ -0,0 +1,25 @@
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ radosbench:
+ concurrent_ops: 4
+ concurrent_procs: 2
+ op_size: [4194304]
+ pool_monitoring_list:
+ - collectl
+ pool_profile: 'replicated'
+ run_monitoring_list:
+ - collectl
+ time: 60
+ write_only: false
+ readmode: 'rand'
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ replicated:
+ pg_size: 256
+ pgp_size: 256
+ replication: 'replicated'
diff --git a/qa/suites/rados/perf/workloads/radosbench_4M_seq_read.yaml b/qa/suites/rados/perf/workloads/radosbench_4M_seq_read.yaml
new file mode 100644
index 00000000..a7107d85
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/radosbench_4M_seq_read.yaml
@@ -0,0 +1,24 @@
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ radosbench:
+ concurrent_ops: 4
+ concurrent_procs: 2
+ op_size: [4194304]
+ pool_monitoring_list:
+ - collectl
+ pool_profile: 'replicated'
+ run_monitoring_list:
+ - collectl
+ time: 60
+ write_only: false
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ replicated:
+ pg_size: 256
+ pgp_size: 256
+ replication: 'replicated'
diff --git a/qa/suites/rados/perf/workloads/radosbench_4M_write.yaml b/qa/suites/rados/perf/workloads/radosbench_4M_write.yaml
new file mode 100644
index 00000000..0465e124
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/radosbench_4M_write.yaml
@@ -0,0 +1,24 @@
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ radosbench:
+ concurrent_ops: 4
+ concurrent_procs: 2
+ op_size: [4194304]
+ pool_monitoring_list:
+ - collectl
+ pool_profile: 'replicated'
+ run_monitoring_list:
+ - collectl
+ time: 60
+ write_only: true
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ replicated:
+ pg_size: 256
+ pgp_size: 256
+ replication: 'replicated'
diff --git a/qa/suites/rados/perf/workloads/sample_fio.yaml b/qa/suites/rados/perf/workloads/sample_fio.yaml
new file mode 100644
index 00000000..c4bb2422
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/sample_fio.yaml
@@ -0,0 +1,25 @@
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ librbdfio:
+ op_size: [4096]
+ time: 60
+ mode: ['randwrite']
+ norandommap: True
+ vol_size: 4096
+ procs_per_volume: [1]
+ volumes_per_client: [2]
+ iodepth: [32]
+ osd_ra: [4096]
+ pool_profile: 'rbd'
+ log_avg_msec: 100
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ rbd:
+ pg_size: 128
+ pgp_size: 128
+ replication: 3
diff --git a/qa/suites/rados/perf/workloads/sample_radosbench.yaml b/qa/suites/rados/perf/workloads/sample_radosbench.yaml
new file mode 100644
index 00000000..9d9f0ac2
--- /dev/null
+++ b/qa/suites/rados/perf/workloads/sample_radosbench.yaml
@@ -0,0 +1,24 @@
+tasks:
+- cbt:
+ branch: 'nautilus'
+ benchmarks:
+ radosbench:
+ concurrent_ops: 4
+ concurrent_procs: 2
+ op_size: [4096]
+ pool_monitoring_list:
+ - collectl
+ pool_profile: 'replicated'
+ run_monitoring_list:
+ - collectl
+ time: 60
+ write_only: true
+ cluster:
+ user: 'ubuntu'
+ osds_per_node: 3
+ iterations: 1
+ pool_profiles:
+ replicated:
+ pg_size: 256
+ pgp_size: 256
+ replication: 'replicated'
diff --git a/qa/suites/rados/rest/% b/qa/suites/rados/rest/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/rest/%
diff --git a/qa/suites/rados/rest/.qa b/qa/suites/rados/rest/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/rest/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/rest/mgr-restful.yaml b/qa/suites/rados/rest/mgr-restful.yaml
new file mode 100644
index 00000000..16653fc9
--- /dev/null
+++ b/qa/suites/rados/rest/mgr-restful.yaml
@@ -0,0 +1,29 @@
+openstack:
+- volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, mds.a, client.a]
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(OSD_
+ - \(OBJECT_
+- exec:
+ mon.a:
+ - ceph restful create-key admin
+ - ceph restful create-self-signed-cert
+ - ceph restful restart
+- workunit:
+ clients:
+ client.a:
+ - rest/test-restful.sh
+- exec:
+ mon.a:
+ - ceph restful delete-key admin
+ - ceph restful list-keys | jq ".admin" | grep null
+
diff --git a/qa/suites/rados/rest/supported-random-distro$ b/qa/suites/rados/rest/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/rest/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/singleton-bluestore/% b/qa/suites/rados/singleton-bluestore/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/%
diff --git a/qa/suites/rados/singleton-bluestore/.qa b/qa/suites/rados/singleton-bluestore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/singleton-bluestore/all/.qa b/qa/suites/rados/singleton-bluestore/all/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/all/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/singleton-bluestore/all/cephtool.yaml b/qa/suites/rados/singleton-bluestore/all/cephtool.yaml
new file mode 100644
index 00000000..0567b603
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/all/cephtool.yaml
@@ -0,0 +1,44 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - had wrong client addr
+ - had wrong cluster addr
+ - must scrub before tier agent can activate
+ - failsafe engaged, dropping updates
+ - failsafe disengaged, no longer dropping updates
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(SMALLER_PG_NUM\)
+ - \(SMALLER_PGP_NUM\)
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(CACHE_POOL_NEAR_FULL\)
+ - \(FS_WITH_FAILED_MDS\)
+ - \(FS_DEGRADED\)
+ - \(POOL_BACKFILLFULL\)
+ - \(POOL_FULL\)
+ - \(SMALLER_PGP_NUM\)
+ - \(POOL_NEARFULL\)
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(AUTH_BAD_CAPS\)
+- workunit:
+ clients:
+ all:
+ - cephtool
+ - mon/pool_ops.sh
diff --git a/qa/suites/rados/singleton-bluestore/msgr b/qa/suites/rados/singleton-bluestore/msgr
new file mode 120000
index 00000000..57bee80d
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/msgr
@@ -0,0 +1 @@
+.qa/msgr \ No newline at end of file
diff --git a/qa/suites/rados/singleton-bluestore/msgr-failures/.qa b/qa/suites/rados/singleton-bluestore/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/singleton-bluestore/msgr-failures/few.yaml b/qa/suites/rados/singleton-bluestore/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/singleton-bluestore/msgr-failures/many.yaml b/qa/suites/rados/singleton-bluestore/msgr-failures/many.yaml
new file mode 100644
index 00000000..59ca5c0f
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/msgr-failures/many.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 1000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/singleton-bluestore/objectstore/.qa b/qa/suites/rados/singleton-bluestore/objectstore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/singleton-bluestore/objectstore/bluestore-bitmap.yaml b/qa/suites/rados/singleton-bluestore/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/rados/singleton-bluestore/objectstore/bluestore-comp-lz4.yaml b/qa/suites/rados/singleton-bluestore/objectstore/bluestore-comp-lz4.yaml
new file mode 120000
index 00000000..4fb2ff6c
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/objectstore/bluestore-comp-lz4.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-comp-lz4.yaml \ No newline at end of file
diff --git a/qa/suites/rados/singleton-bluestore/objectstore/bluestore-comp-snappy.yaml b/qa/suites/rados/singleton-bluestore/objectstore/bluestore-comp-snappy.yaml
new file mode 120000
index 00000000..888caf55
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/objectstore/bluestore-comp-snappy.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-comp-snappy.yaml \ No newline at end of file
diff --git a/qa/suites/rados/singleton-bluestore/rados.yaml b/qa/suites/rados/singleton-bluestore/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/singleton-bluestore/supported-random-distro$ b/qa/suites/rados/singleton-bluestore/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/singleton-bluestore/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/singleton-flat/.qa b/qa/suites/rados/singleton-flat/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/singleton-flat/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/singleton-flat/valgrind-leaks.yaml b/qa/suites/rados/singleton-flat/valgrind-leaks.yaml
new file mode 100644
index 00000000..d3180d9b
--- /dev/null
+++ b/qa/suites/rados/singleton-flat/valgrind-leaks.yaml
@@ -0,0 +1,36 @@
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+os_type: centos
+os_version: '7.8'
+
+openstack:
+ - volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+
+overrides:
+ install:
+ ceph:
+ debuginfo: true
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(PG_
+ conf:
+ global:
+ osd heartbeat grace: 40
+ debug deliberately leak memory: true
+ osd max object name len: 460
+ osd max object namespace len: 64
+ mon:
+ mon osd crush smoke test: false
+ osd:
+ osd fast shutdown: false
+ valgrind:
+ mon: [--tool=memcheck, --leak-check=full, --show-reachable=yes]
+ osd: [--tool=memcheck]
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ expect_valgrind_errors: true
diff --git a/qa/suites/rados/singleton-nomsgr/% b/qa/suites/rados/singleton-nomsgr/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/%
diff --git a/qa/suites/rados/singleton-nomsgr/.qa b/qa/suites/rados/singleton-nomsgr/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/singleton-nomsgr/all/.qa b/qa/suites/rados/singleton-nomsgr/all/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/singleton-nomsgr/all/admin_socket_output.yaml b/qa/suites/rados/singleton-nomsgr/all/admin_socket_output.yaml
new file mode 100644
index 00000000..49f06b9a
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/admin_socket_output.yaml
@@ -0,0 +1,24 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+roles:
+- [mon.a, mds.a, mgr.x, osd.0, osd.1, client.0]
+overrides:
+ ceph:
+ log-whitelist:
+ - MDS in read-only mode
+ - force file system read-only
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_FULL\)
+ - \(MDS_READ_ONLY\)
+ - \(POOL_FULL\)
+tasks:
+- install:
+- ceph:
+- rgw:
+ - client.0
+- exec:
+ client.0:
+ - ceph_test_admin_socket_output --all
diff --git a/qa/suites/rados/singleton-nomsgr/all/balancer.yaml b/qa/suites/rados/singleton-nomsgr/all/balancer.yaml
new file mode 100644
index 00000000..75410508
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/balancer.yaml
@@ -0,0 +1,10 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- cram:
+ clients:
+ client.0:
+ - src/test/cli-integration/balancer/misplaced.t
diff --git a/qa/suites/rados/singleton-nomsgr/all/cache-fs-trunc.yaml b/qa/suites/rados/singleton-nomsgr/all/cache-fs-trunc.yaml
new file mode 100644
index 00000000..0a4bc498
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/cache-fs-trunc.yaml
@@ -0,0 +1,52 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+roles:
+- [mon.a, mgr.x, mds.a, osd.0, osd.1, osd.2, client.0, client.1]
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ conf:
+ global:
+ osd max object name len: 460
+ osd max object namespace len: 64
+ debug client: 20
+ debug mds: 20
+ debug ms: 1
+- exec:
+ client.0:
+ - ceph osd pool create data_cache 4
+ - ceph osd tier add cephfs_data data_cache
+ - ceph osd tier cache-mode data_cache writeback
+ - ceph osd tier set-overlay cephfs_data data_cache
+ - ceph osd pool set data_cache hit_set_type bloom
+ - ceph osd pool set data_cache hit_set_count 8
+ - ceph osd pool set data_cache hit_set_period 3600
+ - ceph osd pool set data_cache min_read_recency_for_promote 0
+- ceph-fuse:
+- exec:
+ client.0:
+ - sudo chmod 777 $TESTDIR/mnt.0/
+ - dd if=/dev/urandom of=$TESTDIR/mnt.0/foo bs=1M count=5
+ - ls -al $TESTDIR/mnt.0/foo
+ - truncate --size 0 $TESTDIR/mnt.0/foo
+ - ls -al $TESTDIR/mnt.0/foo
+ - dd if=/dev/urandom of=$TESTDIR/mnt.0/foo bs=1M count=5
+ - ls -al $TESTDIR/mnt.0/foo
+ - cp $TESTDIR/mnt.0/foo /tmp/foo
+ - sync
+ - rados -p data_cache ls -
+ - sleep 10
+ - rados -p data_cache ls -
+ - rados -p data_cache cache-flush-evict-all
+ - rados -p data_cache ls -
+ - sleep 1
+- exec:
+ client.1:
+ - hexdump -C /tmp/foo | head
+ - hexdump -C $TESTDIR/mnt.1/foo | head
+ - cmp $TESTDIR/mnt.1/foo /tmp/foo
diff --git a/qa/suites/rados/singleton-nomsgr/all/ceph-kvstore-tool.yaml b/qa/suites/rados/singleton-nomsgr/all/ceph-kvstore-tool.yaml
new file mode 100644
index 00000000..a386e74e
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/ceph-kvstore-tool.yaml
@@ -0,0 +1,21 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, client.0]
+
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(POOL_APP_NOT_ENABLED\)
+
+tasks:
+- install:
+- ceph:
+- workunit:
+ clients:
+ all:
+ - cephtool/test_kvstore_tool.sh
diff --git a/qa/suites/rados/singleton-nomsgr/all/ceph-post-file.yaml b/qa/suites/rados/singleton-nomsgr/all/ceph-post-file.yaml
new file mode 100644
index 00000000..530dc42a
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/ceph-post-file.yaml
@@ -0,0 +1,12 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, client.0]
+tasks:
+- install:
+- workunit:
+ clients:
+ all:
+ - post-file.sh
diff --git a/qa/suites/rados/singleton-nomsgr/all/export-after-evict.yaml b/qa/suites/rados/singleton-nomsgr/all/export-after-evict.yaml
new file mode 100644
index 00000000..e0887b85
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/export-after-evict.yaml
@@ -0,0 +1,38 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ conf:
+ global:
+ osd max object name len: 460
+ osd max object namespace len: 64
+- exec:
+ client.0:
+ - ceph osd pool create base-pool 4
+ - ceph osd pool application enable base-pool rados
+ - ceph osd pool create cache-pool 4
+ - ceph osd tier add base-pool cache-pool
+ - ceph osd tier cache-mode cache-pool writeback
+ - ceph osd tier set-overlay base-pool cache-pool
+ - dd if=/dev/urandom of=$TESTDIR/foo bs=1M count=1
+ - rbd import --image-format 2 $TESTDIR/foo base-pool/bar
+ - rbd snap create base-pool/bar@snap
+ - rados -p base-pool cache-flush-evict-all
+ - rbd export base-pool/bar $TESTDIR/bar
+ - rbd export base-pool/bar@snap $TESTDIR/snap
+ - cmp $TESTDIR/foo $TESTDIR/bar
+ - cmp $TESTDIR/foo $TESTDIR/snap
+ - rm $TESTDIR/foo $TESTDIR/bar $TESTDIR/snap
diff --git a/qa/suites/rados/singleton-nomsgr/all/full-tiering.yaml b/qa/suites/rados/singleton-nomsgr/all/full-tiering.yaml
new file mode 100644
index 00000000..944b2f71
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/full-tiering.yaml
@@ -0,0 +1,38 @@
+# verify #13098 fix
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, client.0]
+overrides:
+ ceph:
+ log-whitelist:
+ - is full
+ - overall HEALTH_
+ - \(POOL_FULL\)
+ - \(POOL_NEAR_FULL\)
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(CACHE_POOL_NEAR_FULL\)
+tasks:
+- install:
+- ceph:
+ conf:
+ global:
+ osd max object name len: 460
+ osd max object namespace len: 64
+- exec:
+ client.0:
+ - ceph osd pool create ec-ca 1 1
+ - ceph osd pool create ec 1 1 erasure default
+ - ceph osd pool application enable ec rados
+ - ceph osd tier add ec ec-ca
+ - ceph osd tier cache-mode ec-ca readproxy
+ - ceph osd tier set-overlay ec ec-ca
+ - ceph osd pool set ec-ca hit_set_type bloom
+ - ceph osd pool set-quota ec-ca max_bytes 20480000
+ - ceph osd pool set-quota ec max_bytes 20480000
+ - ceph osd pool set ec-ca target_max_bytes 20480000
+ - timeout 30 rados -p ec-ca bench 30 write || true
+ - ceph osd pool set-quota ec-ca max_bytes 0
+ - ceph osd pool set-quota ec max_bytes 0
diff --git a/qa/suites/rados/singleton-nomsgr/all/health-warnings.yaml b/qa/suites/rados/singleton-nomsgr/all/health-warnings.yaml
new file mode 100644
index 00000000..a28582fd
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/health-warnings.yaml
@@ -0,0 +1,20 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, osd.3, osd.4, osd.5, osd.6, osd.7, osd.8, osd.9, client.0]
+tasks:
+- install:
+- ceph:
+ conf:
+ osd:
+# we may land on ext4
+ osd max object name len: 400
+ osd max object namespace len: 64
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+- workunit:
+ clients:
+ all:
+ - rados/test_health_warnings.sh
diff --git a/qa/suites/rados/singleton-nomsgr/all/large-omap-object-warnings.yaml b/qa/suites/rados/singleton-nomsgr/all/large-omap-object-warnings.yaml
new file mode 100644
index 00000000..62794b4b
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/large-omap-object-warnings.yaml
@@ -0,0 +1,27 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+overrides:
+ ceph:
+ log-whitelist:
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_FULL\)
+ - \(MDS_READ_ONLY\)
+ - large omap objects
+ - Large omap object found
+ - application not enabled
+ conf:
+ osd:
+ osd scrub backoff ratio: 0
+ osd deep scrub large omap object value sum threshold: 8800000
+ osd deep scrub large omap object key threshold: 20000
+tasks:
+- install:
+- ceph:
+- workunit:
+ clients:
+ all:
+ - rados/test_large_omap_detection.py
diff --git a/qa/suites/rados/singleton-nomsgr/all/lazy_omap_stats_output.yaml b/qa/suites/rados/singleton-nomsgr/all/lazy_omap_stats_output.yaml
new file mode 100644
index 00000000..9fbdf0e0
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/lazy_omap_stats_output.yaml
@@ -0,0 +1,16 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, client.0]
+overrides:
+ ceph:
+ log-whitelist:
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- install:
+- ceph:
+- exec:
+ client.0:
+ - ceph_test_lazy_omap_stats
diff --git a/qa/suites/rados/singleton-nomsgr/all/librados_hello_world.yaml b/qa/suites/rados/singleton-nomsgr/all/librados_hello_world.yaml
new file mode 100644
index 00000000..2a96b94d
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/librados_hello_world.yaml
@@ -0,0 +1,22 @@
+roles:
+- [mon.a, mds.a, mgr.x, osd.0, osd.1, client.0]
+overrides:
+ ceph:
+ log-whitelist:
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- install:
+ extra_packages:
+ deb:
+ - libradosstriper-dev
+ - librados-dev
+ - libradospp-dev
+ rpm:
+ - libradosstriper-devel
+ - librados-devel
+ - libradospp-devel
+- ceph:
+- workunit:
+ clients:
+ all:
+ - rados/test_librados_build.sh
diff --git a/qa/suites/rados/singleton-nomsgr/all/msgr.yaml b/qa/suites/rados/singleton-nomsgr/all/msgr.yaml
new file mode 100644
index 00000000..98b50952
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/msgr.yaml
@@ -0,0 +1,21 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- exec:
+ client.0:
+ - ceph_test_async_driver
+ - ceph_test_msgr
+openstack:
+ - machine:
+ disk: 40 # GB
+ ram: 15000 # MB
+ cpus: 1
+ volumes: # attached to each instance
+ count: 0
+ size: 1 # GB
+overrides:
+ ceph:
+ conf:
+ client:
+ debug ms: 20
diff --git a/qa/suites/rados/singleton-nomsgr/all/multi-backfill-reject.yaml b/qa/suites/rados/singleton-nomsgr/all/multi-backfill-reject.yaml
new file mode 100644
index 00000000..9800b5dd
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/multi-backfill-reject.yaml
@@ -0,0 +1,48 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+- - osd.3
+ - osd.4
+ - osd.5
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(PG_
+ - \(OSD_
+ - \(OBJECT_
+ conf:
+ osd:
+ osd debug reject backfill probability: .3
+ osd min pg log entries: 25
+ osd max pg log entries: 100
+ osd max object name len: 460
+ osd max object namespace len: 64
+- exec:
+ client.0:
+ - sudo ceph osd pool create foo 64
+ - sudo ceph osd pool application enable foo rados
+ - rados -p foo bench 60 write -b 1024 --no-cleanup
+ - sudo ceph osd pool set foo size 3
+ - sudo ceph osd out 0 1
+- sleep:
+ duration: 60
+- exec:
+ client.0:
+ - sudo ceph osd in 0 1
+- sleep:
+ duration: 60
+- exec:
+ client.0:
+ - sudo ceph osd pool set foo size 2
+- sleep:
+ duration: 300
diff --git a/qa/suites/rados/singleton-nomsgr/all/pool-access.yaml b/qa/suites/rados/singleton-nomsgr/all/pool-access.yaml
new file mode 100644
index 00000000..c30aebb5
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/pool-access.yaml
@@ -0,0 +1,13 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+- workunit:
+ clients:
+ all:
+ - rados/test_pool_access.sh
diff --git a/qa/suites/rados/singleton-nomsgr/all/recovery-unfound-found.yaml b/qa/suites/rados/singleton-nomsgr/all/recovery-unfound-found.yaml
new file mode 100644
index 00000000..ce0cbd9f
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/all/recovery-unfound-found.yaml
@@ -0,0 +1,58 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+openstack:
+ - volumes: # attached to each instance
+ count: 2
+ size: 20 # GB
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ conf:
+ osd:
+ osd recovery sleep: .1
+ osd objectstore: filestore
+ log-whitelist:
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(OBJECT_
+ - \(PG_
+ - overall HEALTH
+- exec:
+ osd.0:
+ - ceph osd pool create foo 32
+ - ceph osd pool application enable foo foo
+ - rados -p foo bench 30 write -b 4096 --no-cleanup
+ - ceph osd set noup
+- ceph.restart:
+ daemons: [osd.0]
+ wait-for-up: false
+ wait-for-healthy: false
+- exec:
+ osd.0:
+ - sleep 5
+ - rados -p foo bench 3 write -b 4096 --no-cleanup
+ - ceph osd unset noup
+ - sleep 10
+ - ceph osd set noup
+- ceph.restart:
+ daemons: [osd.1]
+ wait-for-up: false
+ wait-for-healthy: false
+- exec:
+ osd.0:
+ - ceph osd out 0
+ - sleep 10
+ - ceph osd unset noup
+- ceph.healthy:
+ wait-for-healthy: false # only wait for osds up and pgs clean, ignore misplaced
+- exec:
+ osd.0:
+ - ceph osd in 0
+- ceph.healthy:
diff --git a/qa/suites/rados/singleton-nomsgr/rados.yaml b/qa/suites/rados/singleton-nomsgr/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/singleton-nomsgr/supported-random-distro$ b/qa/suites/rados/singleton-nomsgr/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/singleton-nomsgr/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/singleton/% b/qa/suites/rados/singleton/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/singleton/%
diff --git a/qa/suites/rados/singleton/.qa b/qa/suites/rados/singleton/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/singleton/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/singleton/all/.qa b/qa/suites/rados/singleton/all/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/singleton/all/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/singleton/all/admin-socket.yaml b/qa/suites/rados/singleton/all/admin-socket.yaml
new file mode 100644
index 00000000..13af8131
--- /dev/null
+++ b/qa/suites/rados/singleton/all/admin-socket.yaml
@@ -0,0 +1,26 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - client.a
+openstack:
+ - volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+- admin_socket:
+ osd.0:
+ version:
+ git_version:
+ help:
+ config show:
+ config help:
+ config set filestore_dump_file /tmp/foo:
+ perf dump:
+ perf schema:
+ get_heap_property tcmalloc.max_total_thread_cache_byte:
+ set_heap_property tcmalloc.max_total_thread_cache_bytes 67108864:
+ set_heap_property tcmalloc.max_total_thread_cache_bytes 33554432:
diff --git a/qa/suites/rados/singleton/all/deduptool.yaml b/qa/suites/rados/singleton/all/deduptool.yaml
new file mode 100644
index 00000000..f2c54f1a
--- /dev/null
+++ b/qa/suites/rados/singleton/all/deduptool.yaml
@@ -0,0 +1,26 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - had wrong client addr
+ - had wrong cluster addr
+ - reached quota
+ - overall HEALTH_
+ - \(POOL_FULL\)
+ - \(POOL_APP_NOT_ENABLED\)
+- workunit:
+ clients:
+ all:
+ - rados/test_dedup_tool.sh
diff --git a/qa/suites/rados/singleton/all/divergent_priors.yaml b/qa/suites/rados/singleton/all/divergent_priors.yaml
new file mode 100644
index 00000000..743d73d4
--- /dev/null
+++ b/qa/suites/rados/singleton/all/divergent_priors.yaml
@@ -0,0 +1,26 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(OBJECT_
+ - \(POOL_APP_NOT_ENABLED\)
+
+tasks:
+- install:
+- ceph:
+- divergent_priors:
diff --git a/qa/suites/rados/singleton/all/divergent_priors2.yaml b/qa/suites/rados/singleton/all/divergent_priors2.yaml
new file mode 100644
index 00000000..2da2c466
--- /dev/null
+++ b/qa/suites/rados/singleton/all/divergent_priors2.yaml
@@ -0,0 +1,26 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(OBJECT_
+ - \(POOL_APP_NOT_ENABLED\)
+
+tasks:
+- install:
+- ceph:
+- divergent_priors2:
diff --git a/qa/suites/rados/singleton/all/dump-stuck.yaml b/qa/suites/rados/singleton/all/dump-stuck.yaml
new file mode 100644
index 00000000..59085ffa
--- /dev/null
+++ b/qa/suites/rados/singleton/all/dump-stuck.yaml
@@ -0,0 +1,19 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+openstack:
+ - volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+- dump_stuck:
diff --git a/qa/suites/rados/singleton/all/ec-lost-unfound.yaml b/qa/suites/rados/singleton/all/ec-lost-unfound.yaml
new file mode 100644
index 00000000..aeb4b278
--- /dev/null
+++ b/qa/suites/rados/singleton/all/ec-lost-unfound.yaml
@@ -0,0 +1,26 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - objects unfound and apparently lost
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(OBJECT_
+ - \(SLOW_OPS\)
+ - slow request
+- ec_lost_unfound:
diff --git a/qa/suites/rados/singleton/all/erasure-code-nonregression.yaml b/qa/suites/rados/singleton/all/erasure-code-nonregression.yaml
new file mode 100644
index 00000000..e8201ee0
--- /dev/null
+++ b/qa/suites/rados/singleton/all/erasure-code-nonregression.yaml
@@ -0,0 +1,17 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- workunit:
+ clients:
+ all:
+ - erasure-code/encode-decode-non-regression.sh
diff --git a/qa/suites/rados/singleton/all/lost-unfound-delete.yaml b/qa/suites/rados/singleton/all/lost-unfound-delete.yaml
new file mode 100644
index 00000000..636cb944
--- /dev/null
+++ b/qa/suites/rados/singleton/all/lost-unfound-delete.yaml
@@ -0,0 +1,25 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - objects unfound and apparently lost
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(OBJECT_
+ - \(SLOW_OPS\)
+ - slow request
+- rep_lost_unfound_delete:
diff --git a/qa/suites/rados/singleton/all/lost-unfound.yaml b/qa/suites/rados/singleton/all/lost-unfound.yaml
new file mode 100644
index 00000000..2f60db16
--- /dev/null
+++ b/qa/suites/rados/singleton/all/lost-unfound.yaml
@@ -0,0 +1,25 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - objects unfound and apparently lost
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(OBJECT_
+ - \(SLOW_OPS\)
+ - slow request
+- lost_unfound:
diff --git a/qa/suites/rados/singleton/all/max-pg-per-osd.from-mon.yaml b/qa/suites/rados/singleton/all/max-pg-per-osd.from-mon.yaml
new file mode 100644
index 00000000..b8a7feae
--- /dev/null
+++ b/qa/suites/rados/singleton/all/max-pg-per-osd.from-mon.yaml
@@ -0,0 +1,27 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+openstack:
+ - volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+overrides:
+ ceph:
+ create_rbd_pool: False
+ conf:
+ mon:
+ osd pool default size: 2
+ osd:
+ mon max pg per osd : 2
+ osd max pg per osd hard ratio : 1
+ log-whitelist:
+ - \(TOO_FEW_PGS\)
+ - \(PENDING_CREATING_PGS\)
+tasks:
+- install:
+- ceph:
+- osd_max_pg_per_osd:
+ test_create_from_mon: True
+ pg_num: 2
diff --git a/qa/suites/rados/singleton/all/max-pg-per-osd.from-primary.yaml b/qa/suites/rados/singleton/all/max-pg-per-osd.from-primary.yaml
new file mode 100644
index 00000000..8ffc9a31
--- /dev/null
+++ b/qa/suites/rados/singleton/all/max-pg-per-osd.from-primary.yaml
@@ -0,0 +1,32 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
+overrides:
+ ceph:
+ create_rbd_pool: False
+ conf:
+ mon:
+ osd pool default size: 2
+ osd:
+ mon max pg per osd : 1
+ osd max pg per osd hard ratio : 1
+ log-whitelist:
+ - \(TOO_FEW_PGS\)
+ - \(PG_
+ - \(PENDING_CREATING_PGS\)
+tasks:
+- install:
+- ceph:
+- osd_max_pg_per_osd:
+ test_create_from_mon: False
+ pg_num: 1
+ pool_size: 2
+ from_primary: True
diff --git a/qa/suites/rados/singleton/all/max-pg-per-osd.from-replica.yaml b/qa/suites/rados/singleton/all/max-pg-per-osd.from-replica.yaml
new file mode 100644
index 00000000..8da365dd
--- /dev/null
+++ b/qa/suites/rados/singleton/all/max-pg-per-osd.from-replica.yaml
@@ -0,0 +1,32 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
+overrides:
+ ceph:
+ create_rbd_pool: False
+ conf:
+ mon:
+ osd pool default size: 2
+ osd:
+ mon max pg per osd : 1
+ osd max pg per osd hard ratio : 1
+ log-whitelist:
+ - \(TOO_FEW_PGS\)
+ - \(PG_
+ - \(PENDING_CREATING_PGS\)
+tasks:
+- install:
+- ceph:
+- osd_max_pg_per_osd:
+ test_create_from_mon: False
+ pg_num: 1
+ pool_size: 2
+ from_primary: False
diff --git a/qa/suites/rados/singleton/all/mon-auth-caps.yaml b/qa/suites/rados/singleton/all/mon-auth-caps.yaml
new file mode 100644
index 00000000..ae4a5d2e
--- /dev/null
+++ b/qa/suites/rados/singleton/all/mon-auth-caps.yaml
@@ -0,0 +1,17 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(AUTH_BAD_CAPS\)
+- workunit:
+ clients:
+ all:
+ - mon/auth_caps.sh
diff --git a/qa/suites/rados/singleton/all/mon-config-key-caps.yaml b/qa/suites/rados/singleton/all/mon-config-key-caps.yaml
new file mode 100644
index 00000000..0b0b95c5
--- /dev/null
+++ b/qa/suites/rados/singleton/all/mon-config-key-caps.yaml
@@ -0,0 +1,17 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(AUTH_BAD_CAPS\)
+- workunit:
+ clients:
+ all:
+ - mon/test_config_key_caps.sh
diff --git a/qa/suites/rados/singleton/all/mon-config-keys.yaml b/qa/suites/rados/singleton/all/mon-config-keys.yaml
new file mode 100644
index 00000000..7bb4f650
--- /dev/null
+++ b/qa/suites/rados/singleton/all/mon-config-keys.yaml
@@ -0,0 +1,20 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+- workunit:
+ clients:
+ all:
+ - mon/test_mon_config_key.py
diff --git a/qa/suites/rados/singleton/all/mon-config.yaml b/qa/suites/rados/singleton/all/mon-config.yaml
new file mode 100644
index 00000000..2d9de8bb
--- /dev/null
+++ b/qa/suites/rados/singleton/all/mon-config.yaml
@@ -0,0 +1,20 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+- workunit:
+ clients:
+ all:
+ - mon/config.sh
diff --git a/qa/suites/rados/singleton/all/mon-memory-target-compliance.yaml.disabled b/qa/suites/rados/singleton/all/mon-memory-target-compliance.yaml.disabled
new file mode 100644
index 00000000..7f9dd495
--- /dev/null
+++ b/qa/suites/rados/singleton/all/mon-memory-target-compliance.yaml.disabled
@@ -0,0 +1,152 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+ - osd.4
+ - osd.5
+ - osd.6
+ - osd.7
+ - osd.8
+ - osd.9
+ - osd.10
+ - osd.11
+ - osd.12
+ - osd.13
+ - osd.14
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 1 # GB
+overrides:
+ ceph:
+ conf:
+ mon:
+ mon memory target: 134217728 # reduced to 128_M
+ rocksdb cache size: 67108864 # reduced to 64_M
+ mon osd cache size: 100000
+ mon osd cache size min: 134217728
+ osd:
+ osd memory target: 1610612736 # reduced to 1.5_G
+ osd objectstore: bluestore
+ debug bluestore: 20
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 9
+
+tasks:
+- install:
+ branch: wip-sseshasa2-testing-2019-07-30-1825 # change as appropriate
+- ceph:
+ create_rbd_pool: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(POOL_
+ - \(CACHE_POOL_
+ - \(OBJECT_
+ - \(SLOW_OPS\)
+ - \(REQUEST_SLOW\)
+ - \(TOO_FEW_PGS\)
+ - slow request
+- interactive:
+- parallel:
+ - log-mon-rss
+ - stress-tasks
+ - benchload
+- exec:
+ client.0:
+ - "ceph_test_mon_memory_target 134217728" # mon memory target
+ - "ceph_test_mon_rss_usage 134217728"
+log-mon-rss:
+- background_exec:
+ client.0:
+ - while true
+ - do /usr/bin/ceph_test_log_rss_usage ceph-mon >> /var/log/ceph/ceph-mon-rss-usage.log
+ - sleep 300 # log rss usage every 5 mins. May be modified accordingly
+ - done
+- exec:
+ client.0:
+ - sleep 37860 # sum total of the radosbench test times below plus 60 secs
+benchload: # The total radosbench test below translates to 10.5 hrs
+- full_sequential:
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+ - radosbench:
+ clients: [client.0]
+ time: 1800
+stress-tasks:
+- thrashosds:
+ op_delay: 1
+ bdev_inject_crash: 1
+ bdev_inject_crash_probability: .8
+ chance_down: 80
+ chance_pgnum_grow: 3
+ chance_pgpnum_fix: 1
+ chance_thrash_cluster_full: 0
+ chance_thrash_pg_upmap: 3
+ chance_thrash_pg_upmap_items: 3
+ min_in: 2
diff --git a/qa/suites/rados/singleton/all/osd-backfill.yaml b/qa/suites/rados/singleton/all/osd-backfill.yaml
new file mode 100644
index 00000000..5b374071
--- /dev/null
+++ b/qa/suites/rados/singleton/all/osd-backfill.yaml
@@ -0,0 +1,26 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(OBJECT_
+ conf:
+ osd:
+ osd min pg log entries: 5
+- osd_backfill:
diff --git a/qa/suites/rados/singleton/all/osd-recovery-incomplete.yaml b/qa/suites/rados/singleton/all/osd-recovery-incomplete.yaml
new file mode 100644
index 00000000..ed5b216b
--- /dev/null
+++ b/qa/suites/rados/singleton/all/osd-recovery-incomplete.yaml
@@ -0,0 +1,28 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(OBJECT_
+ conf:
+ osd:
+ osd min pg log entries: 5
+ osd_fast_fail_on_connection_refused: false
+- osd_recovery.test_incomplete_pgs:
diff --git a/qa/suites/rados/singleton/all/osd-recovery.yaml b/qa/suites/rados/singleton/all/osd-recovery.yaml
new file mode 100644
index 00000000..d937a8db
--- /dev/null
+++ b/qa/suites/rados/singleton/all/osd-recovery.yaml
@@ -0,0 +1,30 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(OBJECT_DEGRADED\)
+ - \(SLOW_OPS\)
+ - slow request
+ conf:
+ osd:
+ osd min pg log entries: 5
+ osd pg log trim min: 0
+ osd_fast_fail_on_connection_refused: false
+- osd_recovery:
diff --git a/qa/suites/rados/singleton/all/peer.yaml b/qa/suites/rados/singleton/all/peer.yaml
new file mode 100644
index 00000000..645034a4
--- /dev/null
+++ b/qa/suites/rados/singleton/all/peer.yaml
@@ -0,0 +1,25 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ config:
+ global:
+ osd pool default min size : 1
+ log-whitelist:
+ - objects unfound and apparently lost
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+- peer:
diff --git a/qa/suites/rados/singleton/all/pg-autoscaler-progress-off.yaml b/qa/suites/rados/singleton/all/pg-autoscaler-progress-off.yaml
new file mode 100644
index 00000000..2784b7e3
--- /dev/null
+++ b/qa/suites/rados/singleton/all/pg-autoscaler-progress-off.yaml
@@ -0,0 +1,42 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+ - client.0
+- - mon.b
+ - mon.c
+ - osd.4
+ - osd.5
+ - osd.6
+ - osd.7
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ create_rbd_pool: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(POOL_
+ - \(CACHE_POOL_
+ - \(OBJECT_
+ - \(SLOW_OPS\)
+ - \(REQUEST_SLOW\)
+ - \(TOO_FEW_PGS\)
+ - slow request
+- exec:
+ client.0:
+ - ceph progress off
+
+- workunit:
+ clients:
+ all:
+ - mon/pg_autoscaler.sh
diff --git a/qa/suites/rados/singleton/all/pg-autoscaler.yaml b/qa/suites/rados/singleton/all/pg-autoscaler.yaml
new file mode 100644
index 00000000..72e18d52
--- /dev/null
+++ b/qa/suites/rados/singleton/all/pg-autoscaler.yaml
@@ -0,0 +1,38 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+ - client.0
+- - mon.b
+ - mon.c
+ - osd.4
+ - osd.5
+ - osd.6
+ - osd.7
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ create_rbd_pool: false
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(POOL_
+ - \(CACHE_POOL_
+ - \(OBJECT_
+ - \(SLOW_OPS\)
+ - \(REQUEST_SLOW\)
+ - \(TOO_FEW_PGS\)
+ - slow request
+- workunit:
+ clients:
+ all:
+ - mon/pg_autoscaler.sh
diff --git a/qa/suites/rados/singleton/all/pg-removal-interruption.yaml b/qa/suites/rados/singleton/all/pg-removal-interruption.yaml
new file mode 100644
index 00000000..3ada5518
--- /dev/null
+++ b/qa/suites/rados/singleton/all/pg-removal-interruption.yaml
@@ -0,0 +1,34 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - slow request
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+- exec:
+ client.0:
+ - sudo ceph osd pool create foo 128 128
+ - sudo ceph osd pool application enable foo rados
+ - sleep 5
+ - sudo ceph tell osd.0 injectargs -- --osd-inject-failure-on-pg-removal
+ - sudo ceph osd pool delete foo foo --yes-i-really-really-mean-it
+- ceph.wait_for_failure: [osd.0]
+- exec:
+ client.0:
+ - sudo ceph osd down 0
+- ceph.restart: [osd.0]
+- ceph.healthy:
diff --git a/qa/suites/rados/singleton/all/radostool.yaml b/qa/suites/rados/singleton/all/radostool.yaml
new file mode 100644
index 00000000..18277953
--- /dev/null
+++ b/qa/suites/rados/singleton/all/radostool.yaml
@@ -0,0 +1,26 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - had wrong client addr
+ - had wrong cluster addr
+ - reached quota
+ - overall HEALTH_
+ - \(POOL_FULL\)
+ - \(POOL_APP_NOT_ENABLED\)
+- workunit:
+ clients:
+ all:
+ - rados/test_rados_tool.sh
diff --git a/qa/suites/rados/singleton/all/random-eio.yaml b/qa/suites/rados/singleton/all/random-eio.yaml
new file mode 100644
index 00000000..5df910b8
--- /dev/null
+++ b/qa/suites/rados/singleton/all/random-eio.yaml
@@ -0,0 +1,44 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+- - osd.3
+ - osd.4
+ - osd.5
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - missing primary copy of
+ - objects unfound and apparently lost
+ - had a read error
+ - overall HEALTH_
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(PG_DEGRADED\)
+ - \(OSD_TOO_MANY_REPAIRS\)
+- full_sequential:
+ - exec:
+ client.0:
+ - sudo ceph tell osd.1 injectargs -- --filestore_debug_random_read_err=0.33
+ - sudo ceph tell osd.1 injectargs -- --bluestore_debug_random_read_err=0.33
+ - sudo ceph osd pool create test 16 16
+ - sudo ceph osd pool set test size 3
+ - sudo ceph pg dump pgs --format=json-pretty
+ - radosbench:
+ clients: [client.0]
+ time: 360
+ type: rand
+ objectsize: 1048576
+ pool: test
+ create_pool: false
+ - exec:
+ client.0:
+ - sudo ceph tell osd.1 injectargs -- --filestore_debug_random_read_err=0.0
+ - sudo ceph tell osd.1 injectargs -- --bluestore_debug_random_read_err=0.0
diff --git a/qa/suites/rados/singleton/all/rebuild-mondb.yaml b/qa/suites/rados/singleton/all/rebuild-mondb.yaml
new file mode 100644
index 00000000..cc1c6809
--- /dev/null
+++ b/qa/suites/rados/singleton/all/rebuild-mondb.yaml
@@ -0,0 +1,32 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - no reply from
+ - overall HEALTH_
+ - \(MON_DOWN\)
+ - \(MGR_DOWN\)
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+- full_sequential:
+ - radosbench:
+ clients: [client.0]
+ time: 30
+ - rebuild_mondb:
+ - radosbench:
+ clients: [client.0]
+ time: 30
diff --git a/qa/suites/rados/singleton/all/recovery-preemption.yaml b/qa/suites/rados/singleton/all/recovery-preemption.yaml
new file mode 100644
index 00000000..fbf1772c
--- /dev/null
+++ b/qa/suites/rados/singleton/all/recovery-preemption.yaml
@@ -0,0 +1,57 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 20 # GB
+tasks:
+- install:
+- ceph:
+ conf:
+ osd:
+ osd recovery sleep: .1
+ osd min pg log entries: 10
+ osd max pg log entries: 1000
+ osd pg log trim min: 10
+ log-whitelist:
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(OBJECT_
+ - \(PG_
+ - \(SLOW_OPS\)
+ - overall HEALTH
+ - slow request
+- exec:
+ osd.0:
+ - ceph osd pool create foo 128
+ - ceph osd pool application enable foo foo
+ - sleep 5
+- ceph.healthy:
+- exec:
+ osd.0:
+ - rados -p foo bench 30 write -b 4096 --no-cleanup
+ - ceph osd out 0
+ - sleep 5
+ - ceph osd set noup
+- ceph.restart:
+ daemons: [osd.1]
+ wait-for-up: false
+ wait-for-healthy: false
+- exec:
+ osd.0:
+ - rados -p foo bench 3 write -b 4096 --no-cleanup
+ - ceph osd unset noup
+ - sleep 10
+ - for f in 0 1 2 3 ; do sudo ceph daemon osd.$f config set osd_recovery_sleep 0 ; sudo ceph daemon osd.$f config set osd_recovery_max_active 20 ; done
+- ceph.healthy:
+- exec:
+ osd.0:
+ - egrep '(defer backfill|defer recovery)' /var/log/ceph/ceph-osd.*.log
diff --git a/qa/suites/rados/singleton/all/resolve_stuck_peering.yaml b/qa/suites/rados/singleton/all/resolve_stuck_peering.yaml
new file mode 100644
index 00000000..3eddce82
--- /dev/null
+++ b/qa/suites/rados/singleton/all/resolve_stuck_peering.yaml
@@ -0,0 +1,17 @@
+roles:
+- [mon.a, mgr.x]
+- [osd.0, osd.1, osd.2, client.0]
+
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(OBJECT_DEGRADED\)
+ - \(POOL_APP_NOT_ENABLED\)
+- resolve_stuck_peering:
+
diff --git a/qa/suites/rados/singleton/all/test-crash.yaml b/qa/suites/rados/singleton/all/test-crash.yaml
new file mode 100644
index 00000000..8002deaa
--- /dev/null
+++ b/qa/suites/rados/singleton/all/test-crash.yaml
@@ -0,0 +1,15 @@
+roles:
+ - [client.0, mon.a, mgr.x, osd.0, osd.1, osd.2]
+
+tasks:
+ - install:
+ - ceph:
+ log-whitelist:
+ - Reduced data availability
+ - OSD_.*DOWN
+ - \(RECENT_CRASH\)
+ - workunit:
+ clients:
+ client.0:
+ - rados/test_crash.sh
+ - ceph.restart: [osd.*]
diff --git a/qa/suites/rados/singleton/all/test_envlibrados_for_rocksdb.yaml b/qa/suites/rados/singleton/all/test_envlibrados_for_rocksdb.yaml
new file mode 100644
index 00000000..42c8ae39
--- /dev/null
+++ b/qa/suites/rados/singleton/all/test_envlibrados_for_rocksdb.yaml
@@ -0,0 +1,19 @@
+overrides:
+ ceph:
+ fs: ext4
+ conf:
+ global:
+ osd max object name len: 460
+ osd max object namespace len: 64
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, client.0]
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(POOL_APP_NOT_ENABLED\)
+- workunit:
+ clients:
+ all:
+ - rados/test_envlibrados_for_rocksdb.sh
diff --git a/qa/suites/rados/singleton/all/thrash-backfill-full.yaml b/qa/suites/rados/singleton/all/thrash-backfill-full.yaml
new file mode 100644
index 00000000..5cd32bd5
--- /dev/null
+++ b/qa/suites/rados/singleton/all/thrash-backfill-full.yaml
@@ -0,0 +1,50 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+- - osd.3
+ - osd.4
+ - osd.5
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+override:
+ ceph:
+ conf:
+ mon:
+ osd default pool size: 3
+ osd min pg log entries: 5
+ osd max pg log entries: 10
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - missing primary copy of
+ - objects unfound and apparently lost
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(SLOW_OPS\)
+ - \(PG_
+ - \(OBJECT_MISPLACED\)
+ - \(OSD_
+ - \(OBJECT_
+ - \(TOO_FEW_PGS\)
+ - \(POOL_BACKFILLFULL\)
+ - slow request
+- thrashosds:
+ op_delay: 30
+ clean_interval: 120
+ chance_down: .75
+ min_live: 5
+ min_in: 5
+ chance_test_backfill_full: .5
+- radosbench:
+ clients: [client.0]
+ time: 1800
+ type: rand
+ objectsize: 1048576
diff --git a/qa/suites/rados/singleton/all/thrash-eio.yaml b/qa/suites/rados/singleton/all/thrash-eio.yaml
new file mode 100644
index 00000000..0afb6c86
--- /dev/null
+++ b/qa/suites/rados/singleton/all/thrash-eio.yaml
@@ -0,0 +1,47 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+- - osd.3
+ - osd.4
+ - osd.5
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+override:
+ ceph:
+ conf:
+ mon:
+ osd default pool size: 3
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - missing primary copy of
+ - objects unfound and apparently lost
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(SLOW_OPS\)
+ - \(PG_
+ - \(OBJECT_MISPLACED\)
+ - \(OSD_
+ - \(OBJECT_
+ - \(TOO_FEW_PGS\)
+ - slow request
+- thrashosds:
+ op_delay: 30
+ clean_interval: 120
+ chance_down: .5
+ random_eio: .33
+ min_live: 5
+ min_in: 5
+- radosbench:
+ clients: [client.0]
+ time: 720
+ type: rand
+ objectsize: 1048576
diff --git a/qa/suites/rados/singleton/all/thrash-rados/+ b/qa/suites/rados/singleton/all/thrash-rados/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/singleton/all/thrash-rados/+
diff --git a/qa/suites/rados/singleton/all/thrash-rados/.qa b/qa/suites/rados/singleton/all/thrash-rados/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/singleton/all/thrash-rados/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/singleton/all/thrash-rados/thrash-rados.yaml b/qa/suites/rados/singleton/all/thrash-rados/thrash-rados.yaml
new file mode 100644
index 00000000..37be8df9
--- /dev/null
+++ b/qa/suites/rados/singleton/all/thrash-rados/thrash-rados.yaml
@@ -0,0 +1,27 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+- - osd.3
+ - osd.4
+ - osd.5
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+- thrashosds:
+ op_delay: 30
+ clean_interval: 120
+ chance_down: .5
+- workunit:
+ clients:
+ all:
+ - rados/load-gen-mix-small.sh
diff --git a/qa/suites/rados/singleton/all/thrash-rados/thrashosds-health.yaml b/qa/suites/rados/singleton/all/thrash-rados/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/rados/singleton/all/thrash-rados/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rados/singleton/all/thrash_cache_writeback_proxy_none.yaml b/qa/suites/rados/singleton/all/thrash_cache_writeback_proxy_none.yaml
new file mode 100644
index 00000000..c0b27075
--- /dev/null
+++ b/qa/suites/rados/singleton/all/thrash_cache_writeback_proxy_none.yaml
@@ -0,0 +1,70 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+- - osd.3
+ - osd.4
+ - osd.5
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 30 # GB
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - slow request
+ - overall HEALTH_
+ - \(CACHE_POOL_
+- exec:
+ client.0:
+ - sudo ceph osd pool create base 4
+ - sudo ceph osd pool application enable base rados
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add base cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay base cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 60
+ - sudo ceph osd pool set cache target_max_objects 500
+- background_exec:
+ mon.a:
+ - while true
+ - do sleep 30
+ - echo proxy
+ - sudo ceph osd tier cache-mode cache proxy
+ - sleep 10
+ - sudo ceph osd pool set cache cache_target_full_ratio .001
+ - echo cache-try-flush-evict-all
+ - rados -p cache cache-try-flush-evict-all
+ - sleep 5
+ - echo cache-flush-evict-all
+ - rados -p cache cache-flush-evict-all
+ - sleep 5
+ - echo remove overlay
+ - sudo ceph osd tier remove-overlay base
+ - sleep 20
+ - echo add writeback overlay
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd pool set cache cache_target_full_ratio .8
+ - sudo ceph osd tier set-overlay base cache
+ - sleep 30
+ - sudo ceph osd tier cache-mode cache readproxy
+ - done
+- rados:
+ clients: [client.0]
+ pools: [base]
+ max_seconds: 600
+ ops: 400000
+ objects: 10000
+ size: 1024
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ copy_from: 50
diff --git a/qa/suites/rados/singleton/all/watch-notify-same-primary.yaml b/qa/suites/rados/singleton/all/watch-notify-same-primary.yaml
new file mode 100644
index 00000000..48ef78ff
--- /dev/null
+++ b/qa/suites/rados/singleton/all/watch-notify-same-primary.yaml
@@ -0,0 +1,32 @@
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ config:
+ global:
+ osd pool default min size : 1
+ client:
+ debug ms: 1
+ debug objecter: 20
+ debug rados: 20
+ log-whitelist:
+ - objects unfound and apparently lost
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(OBJECT_DEGRADED\)
+- watch_notify_same_primary:
+ clients: [client.0]
diff --git a/qa/suites/rados/singleton/msgr b/qa/suites/rados/singleton/msgr
new file mode 120000
index 00000000..57bee80d
--- /dev/null
+++ b/qa/suites/rados/singleton/msgr
@@ -0,0 +1 @@
+.qa/msgr \ No newline at end of file
diff --git a/qa/suites/rados/singleton/msgr-failures/.qa b/qa/suites/rados/singleton/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/singleton/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/singleton/msgr-failures/few.yaml b/qa/suites/rados/singleton/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/rados/singleton/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/singleton/msgr-failures/many.yaml b/qa/suites/rados/singleton/msgr-failures/many.yaml
new file mode 100644
index 00000000..20aeb4df
--- /dev/null
+++ b/qa/suites/rados/singleton/msgr-failures/many.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 1000
+ mon mgr beacon grace: 90
+ mon client hunt interval max multiple: 2
+ mgr:
+ debug monc: 10
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/singleton/objectstore b/qa/suites/rados/singleton/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/singleton/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/singleton/rados.yaml b/qa/suites/rados/singleton/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/singleton/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/singleton/supported-random-distro$ b/qa/suites/rados/singleton/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/singleton/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/standalone/% b/qa/suites/rados/standalone/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/standalone/%
diff --git a/qa/suites/rados/standalone/.qa b/qa/suites/rados/standalone/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/standalone/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/standalone/supported-random-distro$ b/qa/suites/rados/standalone/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/standalone/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/standalone/workloads/.qa b/qa/suites/rados/standalone/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/standalone/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/standalone/workloads/crush.yaml b/qa/suites/rados/standalone/workloads/crush.yaml
new file mode 100644
index 00000000..a62a0dd8
--- /dev/null
+++ b/qa/suites/rados/standalone/workloads/crush.yaml
@@ -0,0 +1,18 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- workunit:
+ basedir: qa/standalone
+ clients:
+ all:
+ - crush
diff --git a/qa/suites/rados/standalone/workloads/erasure-code.yaml b/qa/suites/rados/standalone/workloads/erasure-code.yaml
new file mode 100644
index 00000000..7d79753c
--- /dev/null
+++ b/qa/suites/rados/standalone/workloads/erasure-code.yaml
@@ -0,0 +1,18 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- workunit:
+ basedir: qa/standalone
+ clients:
+ all:
+ - erasure-code
diff --git a/qa/suites/rados/standalone/workloads/mgr.yaml b/qa/suites/rados/standalone/workloads/mgr.yaml
new file mode 100644
index 00000000..997fae86
--- /dev/null
+++ b/qa/suites/rados/standalone/workloads/mgr.yaml
@@ -0,0 +1,18 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- workunit:
+ basedir: qa/standalone
+ clients:
+ all:
+ - mgr
diff --git a/qa/suites/rados/standalone/workloads/misc.yaml b/qa/suites/rados/standalone/workloads/misc.yaml
new file mode 100644
index 00000000..4aa9ee27
--- /dev/null
+++ b/qa/suites/rados/standalone/workloads/misc.yaml
@@ -0,0 +1,18 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- workunit:
+ basedir: qa/standalone
+ clients:
+ all:
+ - misc
diff --git a/qa/suites/rados/standalone/workloads/mon.yaml b/qa/suites/rados/standalone/workloads/mon.yaml
new file mode 100644
index 00000000..c19606f4
--- /dev/null
+++ b/qa/suites/rados/standalone/workloads/mon.yaml
@@ -0,0 +1,18 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- workunit:
+ basedir: qa/standalone
+ clients:
+ all:
+ - mon
diff --git a/qa/suites/rados/standalone/workloads/osd.yaml b/qa/suites/rados/standalone/workloads/osd.yaml
new file mode 100644
index 00000000..e28b5221
--- /dev/null
+++ b/qa/suites/rados/standalone/workloads/osd.yaml
@@ -0,0 +1,18 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- workunit:
+ basedir: qa/standalone
+ clients:
+ all:
+ - osd
diff --git a/qa/suites/rados/standalone/workloads/scrub.yaml b/qa/suites/rados/standalone/workloads/scrub.yaml
new file mode 100644
index 00000000..7f6fad40
--- /dev/null
+++ b/qa/suites/rados/standalone/workloads/scrub.yaml
@@ -0,0 +1,18 @@
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- workunit:
+ basedir: qa/standalone
+ clients:
+ all:
+ - scrub
diff --git a/qa/suites/rados/thrash-erasure-code-big/% b/qa/suites/rados/thrash-erasure-code-big/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/%
diff --git a/qa/suites/rados/thrash-erasure-code-big/.qa b/qa/suites/rados/thrash-erasure-code-big/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-big/ceph.yaml b/qa/suites/rados/thrash-erasure-code-big/ceph.yaml
new file mode 120000
index 00000000..a2fd139c
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/ceph.yaml
@@ -0,0 +1 @@
+../thrash/ceph.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-big/cluster/+ b/qa/suites/rados/thrash-erasure-code-big/cluster/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/cluster/+
diff --git a/qa/suites/rados/thrash-erasure-code-big/cluster/.qa b/qa/suites/rados/thrash-erasure-code-big/cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-big/cluster/12-osds.yaml b/qa/suites/rados/thrash-erasure-code-big/cluster/12-osds.yaml
new file mode 100644
index 00000000..1c45ee35
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/cluster/12-osds.yaml
@@ -0,0 +1,4 @@
+roles:
+- [osd.0, osd.1, osd.2, osd.3, client.0, mon.a]
+- [osd.4, osd.5, osd.6, osd.7, mon.b, mgr.x]
+- [osd.8, osd.9, osd.10, osd.11, mon.c]
diff --git a/qa/suites/rados/thrash-erasure-code-big/cluster/openstack.yaml b/qa/suites/rados/thrash-erasure-code-big/cluster/openstack.yaml
new file mode 100644
index 00000000..e559d912
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/cluster/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
diff --git a/qa/suites/rados/thrash-erasure-code-big/msgr-failures b/qa/suites/rados/thrash-erasure-code-big/msgr-failures
new file mode 120000
index 00000000..03689aa4
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/msgr-failures
@@ -0,0 +1 @@
+../thrash/msgr-failures \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-big/objectstore b/qa/suites/rados/thrash-erasure-code-big/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-big/rados.yaml b/qa/suites/rados/thrash-erasure-code-big/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-big/recovery-overrides b/qa/suites/rados/thrash-erasure-code-big/recovery-overrides
new file mode 120000
index 00000000..1957f2c4
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/recovery-overrides
@@ -0,0 +1 @@
+../thrash/2-recovery-overrides \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-big/supported-random-distro$ b/qa/suites/rados/thrash-erasure-code-big/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-big/thrashers/.qa b/qa/suites/rados/thrash-erasure-code-big/thrashers/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/thrashers/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-big/thrashers/careful.yaml b/qa/suites/rados/thrash-erasure-code-big/thrashers/careful.yaml
new file mode 100644
index 00000000..42694359
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/thrashers/careful.yaml
@@ -0,0 +1,20 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ - slow request
+ conf:
+ osd:
+ osd debug reject backfill probability: .3
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 6
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ min_in: 8
+ aggressive_pg_num_changes: false
diff --git a/qa/suites/rados/thrash-erasure-code-big/thrashers/default.yaml b/qa/suites/rados/thrash-erasure-code-big/thrashers/default.yaml
new file mode 100644
index 00000000..13ca050f
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/thrashers/default.yaml
@@ -0,0 +1,19 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ - slow request
+ conf:
+ osd:
+ osd debug reject backfill probability: .1
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 6
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ min_in: 8
diff --git a/qa/suites/rados/thrash-erasure-code-big/thrashers/fastread.yaml b/qa/suites/rados/thrash-erasure-code-big/thrashers/fastread.yaml
new file mode 100644
index 00000000..17087078
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/thrashers/fastread.yaml
@@ -0,0 +1,20 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ conf:
+ mon:
+ osd pool default ec fast read: true
+ osd:
+ osd debug reject backfill probability: .1
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 2
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ min_in: 4
diff --git a/qa/suites/rados/thrash-erasure-code-big/thrashers/mapgap.yaml b/qa/suites/rados/thrash-erasure-code-big/thrashers/mapgap.yaml
new file mode 100644
index 00000000..fb3af982
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/thrashers/mapgap.yaml
@@ -0,0 +1,21 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ - osd_map_cache_size
+ conf:
+ mon:
+ mon min osdmap epochs: 2
+ osd:
+ osd map cache size: 1
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+tasks:
+- thrashosds:
+ timeout: 1800
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ chance_test_map_discontinuity: 0.5
+ min_in: 8
diff --git a/qa/suites/rados/thrash-erasure-code-big/thrashers/morepggrow.yaml b/qa/suites/rados/thrash-erasure-code-big/thrashers/morepggrow.yaml
new file mode 100644
index 00000000..572832d8
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/thrashers/morepggrow.yaml
@@ -0,0 +1,16 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 9
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 3
+ chance_pgpnum_fix: 1
+ min_in: 8
diff --git a/qa/suites/rados/thrash-erasure-code-big/thrashers/pggrow.yaml b/qa/suites/rados/thrash-erasure-code-big/thrashers/pggrow.yaml
new file mode 100644
index 00000000..148d9fe5
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/thrashers/pggrow.yaml
@@ -0,0 +1,15 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ conf:
+ osd:
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 2
+ chance_pgpnum_fix: 1
+ min_in: 8
diff --git a/qa/suites/rados/thrash-erasure-code-big/thrashosds-health.yaml b/qa/suites/rados/thrash-erasure-code-big/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-big/workloads/.qa b/qa/suites/rados/thrash-erasure-code-big/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-big/workloads/ec-rados-plugin=jerasure-k=4-m=2.yaml b/qa/suites/rados/thrash-erasure-code-big/workloads/ec-rados-plugin=jerasure-k=4-m=2.yaml
new file mode 120000
index 00000000..c18bec16
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/workloads/ec-rados-plugin=jerasure-k=4-m=2.yaml
@@ -0,0 +1 @@
+.qa/erasure-code/ec-rados-plugin=jerasure-k=4-m=2.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-big/workloads/ec-rados-plugin=lrc-k=4-m=2-l=3.yaml b/qa/suites/rados/thrash-erasure-code-big/workloads/ec-rados-plugin=lrc-k=4-m=2-l=3.yaml
new file mode 120000
index 00000000..d66fd796
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-big/workloads/ec-rados-plugin=lrc-k=4-m=2-l=3.yaml
@@ -0,0 +1 @@
+.qa/erasure-code/ec-rados-plugin=lrc-k=4-m=2-l=3.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/% b/qa/suites/rados/thrash-erasure-code-isa/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/%
diff --git a/qa/suites/rados/thrash-erasure-code-isa/.qa b/qa/suites/rados/thrash-erasure-code-isa/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/arch/.qa b/qa/suites/rados/thrash-erasure-code-isa/arch/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/arch/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/arch/x86_64.yaml b/qa/suites/rados/thrash-erasure-code-isa/arch/x86_64.yaml
new file mode 100644
index 00000000..c2409f5d
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/arch/x86_64.yaml
@@ -0,0 +1 @@
+arch: x86_64
diff --git a/qa/suites/rados/thrash-erasure-code-isa/ceph.yaml b/qa/suites/rados/thrash-erasure-code-isa/ceph.yaml
new file mode 120000
index 00000000..a2fd139c
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/ceph.yaml
@@ -0,0 +1 @@
+../thrash/ceph.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/clusters b/qa/suites/rados/thrash-erasure-code-isa/clusters
new file mode 120000
index 00000000..7aac47be
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/clusters
@@ -0,0 +1 @@
+../thrash/clusters \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/msgr-failures b/qa/suites/rados/thrash-erasure-code-isa/msgr-failures
new file mode 120000
index 00000000..03689aa4
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/msgr-failures
@@ -0,0 +1 @@
+../thrash/msgr-failures \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/objectstore b/qa/suites/rados/thrash-erasure-code-isa/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/rados.yaml b/qa/suites/rados/thrash-erasure-code-isa/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/recovery-overrides b/qa/suites/rados/thrash-erasure-code-isa/recovery-overrides
new file mode 120000
index 00000000..1957f2c4
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/recovery-overrides
@@ -0,0 +1 @@
+../thrash/2-recovery-overrides \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/supported-random-distro$ b/qa/suites/rados/thrash-erasure-code-isa/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/thrashers b/qa/suites/rados/thrash-erasure-code-isa/thrashers
new file mode 120000
index 00000000..f461dadc
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/thrashers
@@ -0,0 +1 @@
+../thrash/thrashers \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/thrashosds-health.yaml b/qa/suites/rados/thrash-erasure-code-isa/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/workloads/.qa b/qa/suites/rados/thrash-erasure-code-isa/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-isa/workloads/ec-rados-plugin=isa-k=2-m=1.yaml b/qa/suites/rados/thrash-erasure-code-isa/workloads/ec-rados-plugin=isa-k=2-m=1.yaml
new file mode 120000
index 00000000..19342b9d
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-isa/workloads/ec-rados-plugin=isa-k=2-m=1.yaml
@@ -0,0 +1 @@
+.qa/erasure-code/ec-rados-plugin=isa-k=2-m=1.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/% b/qa/suites/rados/thrash-erasure-code-overwrites/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/%
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/.qa b/qa/suites/rados/thrash-erasure-code-overwrites/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/bluestore-bitmap.yaml b/qa/suites/rados/thrash-erasure-code-overwrites/bluestore-bitmap.yaml
new file mode 120000
index 00000000..635085f7
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+../thrash-erasure-code/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/ceph.yaml b/qa/suites/rados/thrash-erasure-code-overwrites/ceph.yaml
new file mode 120000
index 00000000..a2fd139c
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/ceph.yaml
@@ -0,0 +1 @@
+../thrash/ceph.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/clusters b/qa/suites/rados/thrash-erasure-code-overwrites/clusters
new file mode 120000
index 00000000..646ea04c
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/clusters
@@ -0,0 +1 @@
+../thrash-erasure-code/clusters \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/fast b/qa/suites/rados/thrash-erasure-code-overwrites/fast
new file mode 120000
index 00000000..6170b30e
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/fast
@@ -0,0 +1 @@
+../thrash-erasure-code/fast \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/msgr-failures b/qa/suites/rados/thrash-erasure-code-overwrites/msgr-failures
new file mode 120000
index 00000000..70c9ca13
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/msgr-failures
@@ -0,0 +1 @@
+../thrash-erasure-code/msgr-failures \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/rados.yaml b/qa/suites/rados/thrash-erasure-code-overwrites/rados.yaml
new file mode 120000
index 00000000..017df6f6
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/rados.yaml
@@ -0,0 +1 @@
+../thrash-erasure-code/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/recovery-overrides b/qa/suites/rados/thrash-erasure-code-overwrites/recovery-overrides
new file mode 120000
index 00000000..1957f2c4
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/recovery-overrides
@@ -0,0 +1 @@
+../thrash/2-recovery-overrides \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/supported-random-distro$ b/qa/suites/rados/thrash-erasure-code-overwrites/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/thrashers b/qa/suites/rados/thrash-erasure-code-overwrites/thrashers
new file mode 120000
index 00000000..40ff82cf
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/thrashers
@@ -0,0 +1 @@
+../thrash-erasure-code/thrashers \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/thrashosds-health.yaml b/qa/suites/rados/thrash-erasure-code-overwrites/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/workloads/.qa b/qa/suites/rados/thrash-erasure-code-overwrites/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-pool-snaps-few-objects-overwrites.yaml b/qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-pool-snaps-few-objects-overwrites.yaml
new file mode 100644
index 00000000..d2ad70a5
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-pool-snaps-few-objects-overwrites.yaml
@@ -0,0 +1,23 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ enable experimental unrecoverable data corrupting features: '*'
+ thrashosds:
+ disable_objectstore_tool_tests: true
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ pool_snaps: true
+ ec_pool: true
+ erasure_code_use_overwrites: true
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-small-objects-fast-read-overwrites.yaml b/qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-small-objects-fast-read-overwrites.yaml
new file mode 100644
index 00000000..b3f831b7
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-small-objects-fast-read-overwrites.yaml
@@ -0,0 +1,29 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ enable experimental unrecoverable data corrupting features: '*'
+ thrashosds:
+ disable_objectstore_tool_tests: true
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 400000
+ max_seconds: 600
+ max_in_flight: 64
+ objects: 1024
+ size: 16384
+ ec_pool: true
+ erasure_code_use_overwrites: true
+ fast_read: true
+ op_weights:
+ read: 100
+ write: 100
+ append: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
+ setattr: 25
+ rmattr: 25
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-small-objects-overwrites.yaml b/qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-small-objects-overwrites.yaml
new file mode 100644
index 00000000..9baacef4
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-small-objects-overwrites.yaml
@@ -0,0 +1,28 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ enable experimental unrecoverable data corrupting features: '*'
+ thrashosds:
+ disable_objectstore_tool_tests: true
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 400000
+ max_seconds: 600
+ max_in_flight: 64
+ objects: 1024
+ size: 16384
+ ec_pool: true
+ erasure_code_use_overwrites: true
+ op_weights:
+ read: 100
+ write: 100
+ append: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
+ setattr: 25
+ rmattr: 25
diff --git a/qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-snaps-few-objects-overwrites.yaml b/qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-snaps-few-objects-overwrites.yaml
new file mode 100644
index 00000000..b7c53819
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-overwrites/workloads/ec-snaps-few-objects-overwrites.yaml
@@ -0,0 +1,22 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ enable experimental unrecoverable data corrupting features: '*'
+ thrashosds:
+ disable_objectstore_tool_tests: true
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ ec_pool: true
+ erasure_code_use_overwrites: true
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
diff --git a/qa/suites/rados/thrash-erasure-code-shec/% b/qa/suites/rados/thrash-erasure-code-shec/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/%
diff --git a/qa/suites/rados/thrash-erasure-code-shec/.qa b/qa/suites/rados/thrash-erasure-code-shec/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-shec/ceph.yaml b/qa/suites/rados/thrash-erasure-code-shec/ceph.yaml
new file mode 120000
index 00000000..a2fd139c
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/ceph.yaml
@@ -0,0 +1 @@
+../thrash/ceph.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-shec/clusters/+ b/qa/suites/rados/thrash-erasure-code-shec/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/clusters/+
diff --git a/qa/suites/rados/thrash-erasure-code-shec/clusters/.qa b/qa/suites/rados/thrash-erasure-code-shec/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-shec/clusters/fixed-4.yaml b/qa/suites/rados/thrash-erasure-code-shec/clusters/fixed-4.yaml
new file mode 120000
index 00000000..aa883007
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/clusters/fixed-4.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-4.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-shec/clusters/openstack.yaml b/qa/suites/rados/thrash-erasure-code-shec/clusters/openstack.yaml
new file mode 100644
index 00000000..e559d912
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/clusters/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
diff --git a/qa/suites/rados/thrash-erasure-code-shec/msgr-failures b/qa/suites/rados/thrash-erasure-code-shec/msgr-failures
new file mode 120000
index 00000000..03689aa4
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/msgr-failures
@@ -0,0 +1 @@
+../thrash/msgr-failures \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-shec/objectstore b/qa/suites/rados/thrash-erasure-code-shec/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-shec/rados.yaml b/qa/suites/rados/thrash-erasure-code-shec/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-shec/recovery-overrides b/qa/suites/rados/thrash-erasure-code-shec/recovery-overrides
new file mode 120000
index 00000000..1957f2c4
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/recovery-overrides
@@ -0,0 +1 @@
+../thrash/2-recovery-overrides \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-shec/supported-random-distro$ b/qa/suites/rados/thrash-erasure-code-shec/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-shec/thrashers/.qa b/qa/suites/rados/thrash-erasure-code-shec/thrashers/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/thrashers/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-shec/thrashers/careful.yaml b/qa/suites/rados/thrash-erasure-code-shec/thrashers/careful.yaml
new file mode 100644
index 00000000..6f2f7a44
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/thrashers/careful.yaml
@@ -0,0 +1,20 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ - slow request
+ conf:
+ osd:
+ osd debug reject backfill probability: .3
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 3
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ min_in: 8
+ aggressive_pg_num_changes: false
diff --git a/qa/suites/rados/thrash-erasure-code-shec/thrashers/default.yaml b/qa/suites/rados/thrash-erasure-code-shec/thrashers/default.yaml
new file mode 100644
index 00000000..a438f43f
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/thrashers/default.yaml
@@ -0,0 +1,19 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ - slow request
+ conf:
+ osd:
+ osd debug reject backfill probability: .1
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 3
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ min_in: 8
diff --git a/qa/suites/rados/thrash-erasure-code-shec/thrashosds-health.yaml b/qa/suites/rados/thrash-erasure-code-shec/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-shec/workloads/.qa b/qa/suites/rados/thrash-erasure-code-shec/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code-shec/workloads/ec-rados-plugin=shec-k=4-m=3-c=2.yaml b/qa/suites/rados/thrash-erasure-code-shec/workloads/ec-rados-plugin=shec-k=4-m=3-c=2.yaml
new file mode 120000
index 00000000..8f318cc3
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code-shec/workloads/ec-rados-plugin=shec-k=4-m=3-c=2.yaml
@@ -0,0 +1 @@
+.qa/erasure-code/ec-rados-plugin=shec-k=4-m=3-c=2.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/% b/qa/suites/rados/thrash-erasure-code/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/%
diff --git a/qa/suites/rados/thrash-erasure-code/.qa b/qa/suites/rados/thrash-erasure-code/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/ceph.yaml b/qa/suites/rados/thrash-erasure-code/ceph.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/ceph.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/rados/thrash-erasure-code/clusters b/qa/suites/rados/thrash-erasure-code/clusters
new file mode 120000
index 00000000..7aac47be
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/clusters
@@ -0,0 +1 @@
+../thrash/clusters \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/fast/.qa b/qa/suites/rados/thrash-erasure-code/fast/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/fast/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/fast/fast.yaml b/qa/suites/rados/thrash-erasure-code/fast/fast.yaml
new file mode 100644
index 00000000..8ebfee0a
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/fast/fast.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ osd pool default ec fast read: true
diff --git a/qa/suites/rados/thrash-erasure-code/fast/normal.yaml b/qa/suites/rados/thrash-erasure-code/fast/normal.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/fast/normal.yaml
diff --git a/qa/suites/rados/thrash-erasure-code/msgr-failures b/qa/suites/rados/thrash-erasure-code/msgr-failures
new file mode 120000
index 00000000..03689aa4
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/msgr-failures
@@ -0,0 +1 @@
+../thrash/msgr-failures \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/objectstore b/qa/suites/rados/thrash-erasure-code/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/rados.yaml b/qa/suites/rados/thrash-erasure-code/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/recovery-overrides b/qa/suites/rados/thrash-erasure-code/recovery-overrides
new file mode 120000
index 00000000..1957f2c4
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/recovery-overrides
@@ -0,0 +1 @@
+../thrash/2-recovery-overrides \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/supported-random-distro$ b/qa/suites/rados/thrash-erasure-code/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/thrashers/.qa b/qa/suites/rados/thrash-erasure-code/thrashers/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/thrashers/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/thrashers/careful.yaml b/qa/suites/rados/thrash-erasure-code/thrashers/careful.yaml
new file mode 100644
index 00000000..018267f0
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/thrashers/careful.yaml
@@ -0,0 +1,19 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ conf:
+ osd:
+ osd debug reject backfill probability: .3
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 2
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ min_in: 4
+ aggressive_pg_num_changes: false
diff --git a/qa/suites/rados/thrash-erasure-code/thrashers/default.yaml b/qa/suites/rados/thrash-erasure-code/thrashers/default.yaml
new file mode 100644
index 00000000..31c19704
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/thrashers/default.yaml
@@ -0,0 +1,18 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ conf:
+ osd:
+ osd debug reject backfill probability: .1
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 2
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ min_in: 4
diff --git a/qa/suites/rados/thrash-erasure-code/thrashers/fastread.yaml b/qa/suites/rados/thrash-erasure-code/thrashers/fastread.yaml
new file mode 100644
index 00000000..4701fae5
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/thrashers/fastread.yaml
@@ -0,0 +1,20 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ conf:
+ mon:
+ osd pool default ec fast read: true
+ osd:
+ osd debug reject backfill probability: .1
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 3
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ min_in: 4
diff --git a/qa/suites/rados/thrash-erasure-code/thrashers/morepggrow.yaml b/qa/suites/rados/thrash-erasure-code/thrashers/morepggrow.yaml
new file mode 100644
index 00000000..12c11fa3
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/thrashers/morepggrow.yaml
@@ -0,0 +1,16 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 9
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 3
+ chance_pgpnum_fix: 1
+ min_in: 4
diff --git a/qa/suites/rados/thrash-erasure-code/thrashers/pggrow.yaml b/qa/suites/rados/thrash-erasure-code/thrashers/pggrow.yaml
new file mode 100644
index 00000000..2bbe5e5f
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/thrashers/pggrow.yaml
@@ -0,0 +1,16 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ conf:
+ osd:
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 4
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 2
+ chance_pgpnum_fix: 1
+ min_in: 4
diff --git a/qa/suites/rados/thrash-erasure-code/thrashosds-health.yaml b/qa/suites/rados/thrash-erasure-code/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/workloads/.qa b/qa/suites/rados/thrash-erasure-code/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=clay-k=4-m=2.yaml b/qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=clay-k=4-m=2.yaml
new file mode 120000
index 00000000..08155ed6
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=clay-k=4-m=2.yaml
@@ -0,0 +1 @@
+.qa/erasure-code/ec-rados-plugin=clay-k=4-m=2.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=jerasure-k=2-m=1.yaml b/qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=jerasure-k=2-m=1.yaml
new file mode 120000
index 00000000..af6d8042
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=jerasure-k=2-m=1.yaml
@@ -0,0 +1 @@
+.qa/erasure-code/ec-rados-plugin=jerasure-k=2-m=1.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=jerasure-k=3-m=1.yaml b/qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=jerasure-k=3-m=1.yaml
new file mode 120000
index 00000000..cdf55199
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/workloads/ec-rados-plugin=jerasure-k=3-m=1.yaml
@@ -0,0 +1 @@
+.qa/erasure-code/ec-rados-plugin=jerasure-k=3-m=1.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-erasure-code/workloads/ec-radosbench.yaml b/qa/suites/rados/thrash-erasure-code/workloads/ec-radosbench.yaml
new file mode 100644
index 00000000..3c2ff7af
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/workloads/ec-radosbench.yaml
@@ -0,0 +1,27 @@
+tasks:
+- full_sequential:
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ unique_pool: true
+ ec_pool: true
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ unique_pool: true
+ ec_pool: true
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ unique_pool: true
+ ec_pool: true
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ unique_pool: true
+ ec_pool: true
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ unique_pool: true
+ ec_pool: true
diff --git a/qa/suites/rados/thrash-erasure-code/workloads/ec-small-objects-fast-read.yaml b/qa/suites/rados/thrash-erasure-code/workloads/ec-small-objects-fast-read.yaml
new file mode 100644
index 00000000..e732ec6f
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/workloads/ec-small-objects-fast-read.yaml
@@ -0,0 +1,21 @@
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 400000
+ max_seconds: 600
+ max_in_flight: 64
+ objects: 1024
+ size: 16384
+ ec_pool: true
+ fast_read: true
+ op_weights:
+ read: 100
+ write: 0
+ append: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
+ setattr: 25
+ rmattr: 25
diff --git a/qa/suites/rados/thrash-erasure-code/workloads/ec-small-objects-many-deletes.yaml b/qa/suites/rados/thrash-erasure-code/workloads/ec-small-objects-many-deletes.yaml
new file mode 100644
index 00000000..25b38e14
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/workloads/ec-small-objects-many-deletes.yaml
@@ -0,0 +1,14 @@
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 400000
+ max_seconds: 600
+ max_in_flight: 8
+ objects: 20
+ size: 16384
+ ec_pool: true
+ op_weights:
+ write: 0
+ read: 0
+ append: 10
+ delete: 20
diff --git a/qa/suites/rados/thrash-erasure-code/workloads/ec-small-objects.yaml b/qa/suites/rados/thrash-erasure-code/workloads/ec-small-objects.yaml
new file mode 100644
index 00000000..a8ac3971
--- /dev/null
+++ b/qa/suites/rados/thrash-erasure-code/workloads/ec-small-objects.yaml
@@ -0,0 +1,20 @@
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 400000
+ max_seconds: 600
+ max_in_flight: 64
+ objects: 1024
+ size: 16384
+ ec_pool: true
+ op_weights:
+ read: 100
+ write: 0
+ append: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
+ setattr: 25
+ rmattr: 25
diff --git a/qa/suites/rados/thrash-old-clients/% b/qa/suites/rados/thrash-old-clients/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/%
diff --git a/qa/suites/rados/thrash-old-clients/.qa b/qa/suites/rados/thrash-old-clients/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/0-size-min-size-overrides/.qa b/qa/suites/rados/thrash-old-clients/0-size-min-size-overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/0-size-min-size-overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/0-size-min-size-overrides/2-size-2-min-size.yaml b/qa/suites/rados/thrash-old-clients/0-size-min-size-overrides/2-size-2-min-size.yaml
new file mode 120000
index 00000000..5393a755
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/0-size-min-size-overrides/2-size-2-min-size.yaml
@@ -0,0 +1 @@
+.qa/overrides/2-size-2-min-size.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/0-size-min-size-overrides/3-size-2-min-size.yaml b/qa/suites/rados/thrash-old-clients/0-size-min-size-overrides/3-size-2-min-size.yaml
new file mode 120000
index 00000000..5ff70ead
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/0-size-min-size-overrides/3-size-2-min-size.yaml
@@ -0,0 +1 @@
+.qa/overrides/3-size-2-min-size.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/1-install/.qa b/qa/suites/rados/thrash-old-clients/1-install/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/1-install/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/1-install/hammer.yaml b/qa/suites/rados/thrash-old-clients/1-install/hammer.yaml
new file mode 100644
index 00000000..ed620c68
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/1-install/hammer.yaml
@@ -0,0 +1,29 @@
+overrides:
+ ceph:
+ crush_tunables: hammer
+ conf:
+ mon:
+ mon osd initial require min compat client: hammer
+ client:
+ ms type: simple
+tasks:
+- install:
+ branch: hammer
+ downgrade_packages: ['librbd1', 'librados2']
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-diskprediction-cloud
+ - ceph-mgr-rook
+ - ceph-mgr-ssh
+ - ceph-mgr
+ - libcephfs2
+ - libcephfs-devel
+ - libcephfs-dev
+ - libradospp-devel
+ extra_packages: ['librados2']
+- install.upgrade:
+ mon.a:
+ mon.b:
+ mon.c:
diff --git a/qa/suites/rados/thrash-old-clients/1-install/jewel.yaml b/qa/suites/rados/thrash-old-clients/1-install/jewel.yaml
new file mode 100644
index 00000000..eae5ffc2
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/1-install/jewel.yaml
@@ -0,0 +1,19 @@
+tasks:
+- install:
+ branch: jewel
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-diskprediction-cloud
+ - ceph-mgr-rook
+ - ceph-mgr-ssh
+ - ceph-mgr
+ - libcephfs2
+ - libcephfs-devel
+ - libcephfs-dev
+ extra_packages: ['librados2']
+- install.upgrade:
+ mon.a:
+ mon.b:
+ mon.c:
diff --git a/qa/suites/rados/thrash-old-clients/1-install/luminous.yaml b/qa/suites/rados/thrash-old-clients/1-install/luminous.yaml
new file mode 100644
index 00000000..eb9a3a2e
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/1-install/luminous.yaml
@@ -0,0 +1,15 @@
+tasks:
+- install:
+ branch: luminous
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-diskprediction-cloud
+ - ceph-mgr-rook
+ - ceph-mgr-ssh
+ extra_packages: ['librados2']
+- install.upgrade:
+ mon.a:
+ mon.b:
+ mon.c:
diff --git a/qa/suites/rados/thrash-old-clients/backoff/.qa b/qa/suites/rados/thrash-old-clients/backoff/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/backoff/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/backoff/normal.yaml b/qa/suites/rados/thrash-old-clients/backoff/normal.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/backoff/normal.yaml
diff --git a/qa/suites/rados/thrash-old-clients/backoff/peering.yaml b/qa/suites/rados/thrash-old-clients/backoff/peering.yaml
new file mode 100644
index 00000000..66d06117
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/backoff/peering.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd backoff on peering: true
diff --git a/qa/suites/rados/thrash-old-clients/backoff/peering_and_degraded.yaml b/qa/suites/rados/thrash-old-clients/backoff/peering_and_degraded.yaml
new file mode 100644
index 00000000..e6109906
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/backoff/peering_and_degraded.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd backoff on peering: true
+ osd backoff on degraded: true
diff --git a/qa/suites/rados/thrash-old-clients/ceph.yaml b/qa/suites/rados/thrash-old-clients/ceph.yaml
new file mode 100644
index 00000000..364f9d03
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/ceph.yaml
@@ -0,0 +1,7 @@
+tasks:
+- ceph:
+ mon_bind_addrvec: false
+ mon_bind_msgr2: false
+ conf:
+ global:
+ ms bind msgr2: false
diff --git a/qa/suites/rados/thrash-old-clients/clusters/+ b/qa/suites/rados/thrash-old-clients/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/clusters/+
diff --git a/qa/suites/rados/thrash-old-clients/clusters/.qa b/qa/suites/rados/thrash-old-clients/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/clusters/openstack.yaml b/qa/suites/rados/thrash-old-clients/clusters/openstack.yaml
new file mode 100644
index 00000000..b0f3b9b4
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/clusters/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 30 # GB
diff --git a/qa/suites/rados/thrash-old-clients/clusters/three-plus-one.yaml b/qa/suites/rados/thrash-old-clients/clusters/three-plus-one.yaml
new file mode 100644
index 00000000..35cfc3c1
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/clusters/three-plus-one.yaml
@@ -0,0 +1,14 @@
+roles:
+- [mon.a, mgr.y, osd.0, osd.1, osd.2, osd.3, client.0]
+- [mon.b, mgr.x, osd.4, osd.5, osd.6, osd.7, client.1]
+- [mon.c, osd.8, osd.9, osd.10, osd.11]
+- [client.2]
+openstack:
+- volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd shutdown pgref assert: true
diff --git a/qa/suites/rados/thrash-old-clients/d-balancer/.qa b/qa/suites/rados/thrash-old-clients/d-balancer/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/d-balancer/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/d-balancer/crush-compat.yaml b/qa/suites/rados/thrash-old-clients/d-balancer/crush-compat.yaml
new file mode 100644
index 00000000..aa867660
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/d-balancer/crush-compat.yaml
@@ -0,0 +1,6 @@
+tasks:
+- exec:
+ mon.a:
+ - while ! ceph balancer status ; do sleep 1 ; done
+ - ceph balancer mode crush-compat
+ - ceph balancer on
diff --git a/qa/suites/rados/thrash-old-clients/d-balancer/off.yaml b/qa/suites/rados/thrash-old-clients/d-balancer/off.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/d-balancer/off.yaml
diff --git a/qa/suites/rados/thrash-old-clients/distro$/.qa b/qa/suites/rados/thrash-old-clients/distro$/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/distro$/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/distro$/centos_latest.yaml b/qa/suites/rados/thrash-old-clients/distro$/centos_latest.yaml
new file mode 120000
index 00000000..bd9854e7
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/distro$/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/distro$/ubuntu_16.04.yaml b/qa/suites/rados/thrash-old-clients/distro$/ubuntu_16.04.yaml
new file mode 120000
index 00000000..053d801e
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/distro$/ubuntu_16.04.yaml
@@ -0,0 +1 @@
+.qa/distros/all/ubuntu_16.04.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/msgr-failures/.qa b/qa/suites/rados/thrash-old-clients/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/msgr-failures/fastclose.yaml b/qa/suites/rados/thrash-old-clients/msgr-failures/fastclose.yaml
new file mode 100644
index 00000000..02121726
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/msgr-failures/fastclose.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 2500
+ ms tcp read timeout: 5
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/thrash-old-clients/msgr-failures/few.yaml b/qa/suites/rados/thrash-old-clients/msgr-failures/few.yaml
new file mode 100644
index 00000000..527eadb4
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/msgr-failures/few.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ osd:
+ osd heartbeat use min delay socket: true
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/thrash-old-clients/msgr-failures/osd-delay.yaml b/qa/suites/rados/thrash-old-clients/msgr-failures/osd-delay.yaml
new file mode 100644
index 00000000..91c14725
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/msgr-failures/osd-delay.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 2500
+ ms inject delay type: osd
+ ms inject delay probability: .005
+ ms inject delay max: 1
+ ms inject internal delays: .002
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/thrash-old-clients/msgr/.qa b/qa/suites/rados/thrash-old-clients/msgr/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/msgr/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/msgr/async-v1only.yaml b/qa/suites/rados/thrash-old-clients/msgr/async-v1only.yaml
new file mode 120000
index 00000000..9673dbb0
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/msgr/async-v1only.yaml
@@ -0,0 +1 @@
+.qa/msgr/async-v1only.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/msgr/async.yaml b/qa/suites/rados/thrash-old-clients/msgr/async.yaml
new file mode 120000
index 00000000..b7f05e4c
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/msgr/async.yaml
@@ -0,0 +1 @@
+.qa/msgr/async.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/msgr/random.yaml b/qa/suites/rados/thrash-old-clients/msgr/random.yaml
new file mode 120000
index 00000000..e0dcb145
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/msgr/random.yaml
@@ -0,0 +1 @@
+.qa/msgr/random.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/msgr/simple.yaml b/qa/suites/rados/thrash-old-clients/msgr/simple.yaml
new file mode 120000
index 00000000..780dc0ea
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/msgr/simple.yaml
@@ -0,0 +1 @@
+.qa/msgr/simple.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/rados.yaml b/qa/suites/rados/thrash-old-clients/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/thrashers/.qa b/qa/suites/rados/thrash-old-clients/thrashers/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/thrashers/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/thrashers/careful.yaml b/qa/suites/rados/thrash-old-clients/thrashers/careful.yaml
new file mode 100644
index 00000000..df77f73a
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/thrashers/careful.yaml
@@ -0,0 +1,25 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ conf:
+ osd:
+ osd debug reject backfill probability: .3
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 3
+ osd snap trim sleep: 2
+ mon:
+ mon min osdmap epochs: 50
+ paxos service trim min: 10
+ # prune full osdmaps regularly
+ mon osdmap full prune min: 15
+ mon osdmap full prune interval: 2
+ mon osdmap full prune txsize: 2
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgpnum_fix: 1
+ aggressive_pg_num_changes: false
diff --git a/qa/suites/rados/thrash-old-clients/thrashers/default.yaml b/qa/suites/rados/thrash-old-clients/thrashers/default.yaml
new file mode 100644
index 00000000..e8e2007f
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/thrashers/default.yaml
@@ -0,0 +1,24 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ conf:
+ osd:
+ osd debug reject backfill probability: .3
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 3
+ osd snap trim sleep: 2
+ mon:
+ mon min osdmap epochs: 50
+ paxos service trim min: 10
+ # prune full osdmaps regularly
+ mon osdmap full prune min: 15
+ mon osdmap full prune interval: 2
+ mon osdmap full prune txsize: 2
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgpnum_fix: 1
diff --git a/qa/suites/rados/thrash-old-clients/thrashers/mapgap.yaml b/qa/suites/rados/thrash-old-clients/thrashers/mapgap.yaml
new file mode 100644
index 00000000..7b55097f
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/thrashers/mapgap.yaml
@@ -0,0 +1,26 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ - osd_map_cache_size
+ conf:
+ mon:
+ mon min osdmap epochs: 50
+ paxos service trim min: 10
+ # prune full osdmaps regularly
+ mon osdmap full prune min: 15
+ mon osdmap full prune interval: 2
+ mon osdmap full prune txsize: 2
+ osd:
+ osd map cache size: 1
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd scrub during recovery: false
+ osd max backfills: 6
+tasks:
+- thrashosds:
+ timeout: 1800
+ chance_pgnum_grow: 0.25
+ chance_pgpnum_fix: 0.25
+ chance_test_map_discontinuity: 2
diff --git a/qa/suites/rados/thrash-old-clients/thrashers/morepggrow.yaml b/qa/suites/rados/thrash-old-clients/thrashers/morepggrow.yaml
new file mode 100644
index 00000000..91d2173e
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/thrashers/morepggrow.yaml
@@ -0,0 +1,22 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ journal throttle high multiple: 2
+ journal throttle max multiple: 10
+ filestore queue throttle high multiple: 2
+ filestore queue throttle max multiple: 10
+ osd max backfills: 9
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 3
+ chance_pgpnum_fix: 1
+openstack:
+- volumes:
+ size: 50
diff --git a/qa/suites/rados/thrash-old-clients/thrashers/none.yaml b/qa/suites/rados/thrash-old-clients/thrashers/none.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/thrashers/none.yaml
diff --git a/qa/suites/rados/thrash-old-clients/thrashers/pggrow.yaml b/qa/suites/rados/thrash-old-clients/thrashers/pggrow.yaml
new file mode 100644
index 00000000..8721fd18
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/thrashers/pggrow.yaml
@@ -0,0 +1,24 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ conf:
+ osd:
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ filestore odsync write: true
+ osd max backfills: 2
+ osd snap trim sleep: .5
+ mon:
+ mon min osdmap epochs: 50
+ paxos service trim min: 10
+ # prune full osdmaps regularly
+ mon osdmap full prune min: 15
+ mon osdmap full prune interval: 2
+ mon osdmap full prune txsize: 2
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 2
+ chance_pgpnum_fix: 1
diff --git a/qa/suites/rados/thrash-old-clients/thrashosds-health.yaml b/qa/suites/rados/thrash-old-clients/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/workloads/.qa b/qa/suites/rados/thrash-old-clients/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash-old-clients/workloads/cache-snaps.yaml b/qa/suites/rados/thrash-old-clients/workloads/cache-snaps.yaml
new file mode 100644
index 00000000..fc1f5b45
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/workloads/cache-snaps.yaml
@@ -0,0 +1,34 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - must scrub before tier agent can activate
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create base 4
+ - sudo ceph osd pool application enable base rados
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add base cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay base cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 3600
+ - sudo ceph osd pool set cache target_max_objects 250
+ - sudo ceph osd pool set cache min_read_recency_for_promote 2
+- rados:
+ clients: [client.2]
+ pools: [base]
+ ops: 4000
+ objects: 500
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ copy_from: 50
+ cache_flush: 50
+ cache_try_flush: 50
+ cache_evict: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
diff --git a/qa/suites/rados/thrash-old-clients/workloads/radosbench.yaml b/qa/suites/rados/thrash-old-clients/workloads/radosbench.yaml
new file mode 100644
index 00000000..d0022fef
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/workloads/radosbench.yaml
@@ -0,0 +1,41 @@
+overrides:
+ ceph:
+ conf:
+ client.2:
+ debug ms: 1
+ debug objecter: 20
+ debug rados: 20
+tasks:
+- full_sequential:
+ - radosbench:
+ objectsize: 0
+ clients: [client.2]
+ time: 90
+ - radosbench:
+ objectsize: 0
+ clients: [client.2]
+ time: 90
+ - radosbench:
+ objectsize: 0
+ clients: [client.2]
+ time: 90
+ - radosbench:
+ objectsize: 0
+ clients: [client.2]
+ time: 90
+ - radosbench:
+ objectsize: 0
+ clients: [client.2]
+ time: 90
+ - radosbench:
+ objectsize: 0
+ clients: [client.2]
+ time: 90
+ - radosbench:
+ objectsize: 0
+ clients: [client.2]
+ time: 90
+ - radosbench:
+ objectsize: 0
+ clients: [client.2]
+ time: 90
diff --git a/qa/suites/rados/thrash-old-clients/workloads/rbd_cls.yaml b/qa/suites/rados/thrash-old-clients/workloads/rbd_cls.yaml
new file mode 100644
index 00000000..31ccad9f
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/workloads/rbd_cls.yaml
@@ -0,0 +1,7 @@
+meta:
+- desc: |
+ rbd object class functional tests
+tasks:
+- exec:
+ client.2:
+ - ceph_test_cls_rbd --gtest_filter=-TestClsRbd.get_features:TestClsRbd.parents
diff --git a/qa/suites/rados/thrash-old-clients/workloads/snaps-few-objects.yaml b/qa/suites/rados/thrash-old-clients/workloads/snaps-few-objects.yaml
new file mode 100644
index 00000000..f0a5735a
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/workloads/snaps-few-objects.yaml
@@ -0,0 +1,13 @@
+tasks:
+- rados:
+ clients: [client.2]
+ ops: 4000
+ objects: 50
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
diff --git a/qa/suites/rados/thrash-old-clients/workloads/test_rbd_api.yaml b/qa/suites/rados/thrash-old-clients/workloads/test_rbd_api.yaml
new file mode 100644
index 00000000..39617b37
--- /dev/null
+++ b/qa/suites/rados/thrash-old-clients/workloads/test_rbd_api.yaml
@@ -0,0 +1,8 @@
+meta:
+- desc: |
+ librbd C and C++ api tests
+workload:
+- workunit:
+ clients:
+ client.2:
+ - rbd/test_librbd.sh
diff --git a/qa/suites/rados/thrash/% b/qa/suites/rados/thrash/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash/%
diff --git a/qa/suites/rados/thrash/.qa b/qa/suites/rados/thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash/0-size-min-size-overrides/.qa b/qa/suites/rados/thrash/0-size-min-size-overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash/0-size-min-size-overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash/0-size-min-size-overrides/2-size-2-min-size.yaml b/qa/suites/rados/thrash/0-size-min-size-overrides/2-size-2-min-size.yaml
new file mode 120000
index 00000000..5393a755
--- /dev/null
+++ b/qa/suites/rados/thrash/0-size-min-size-overrides/2-size-2-min-size.yaml
@@ -0,0 +1 @@
+.qa/overrides/2-size-2-min-size.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash/0-size-min-size-overrides/3-size-2-min-size.yaml b/qa/suites/rados/thrash/0-size-min-size-overrides/3-size-2-min-size.yaml
new file mode 120000
index 00000000..5ff70ead
--- /dev/null
+++ b/qa/suites/rados/thrash/0-size-min-size-overrides/3-size-2-min-size.yaml
@@ -0,0 +1 @@
+.qa/overrides/3-size-2-min-size.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash/1-pg-log-overrides/.qa b/qa/suites/rados/thrash/1-pg-log-overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash/1-pg-log-overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash/1-pg-log-overrides/normal_pg_log.yaml b/qa/suites/rados/thrash/1-pg-log-overrides/normal_pg_log.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash/1-pg-log-overrides/normal_pg_log.yaml
diff --git a/qa/suites/rados/thrash/1-pg-log-overrides/short_pg_log.yaml b/qa/suites/rados/thrash/1-pg-log-overrides/short_pg_log.yaml
new file mode 120000
index 00000000..abd86d7d
--- /dev/null
+++ b/qa/suites/rados/thrash/1-pg-log-overrides/short_pg_log.yaml
@@ -0,0 +1 @@
+.qa/overrides/short_pg_log.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash/2-recovery-overrides/$ b/qa/suites/rados/thrash/2-recovery-overrides/$
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash/2-recovery-overrides/$
diff --git a/qa/suites/rados/thrash/2-recovery-overrides/.qa b/qa/suites/rados/thrash/2-recovery-overrides/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash/2-recovery-overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash/2-recovery-overrides/default.yaml b/qa/suites/rados/thrash/2-recovery-overrides/default.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash/2-recovery-overrides/default.yaml
diff --git a/qa/suites/rados/thrash/2-recovery-overrides/more-active-recovery.yaml b/qa/suites/rados/thrash/2-recovery-overrides/more-active-recovery.yaml
new file mode 120000
index 00000000..47afd702
--- /dev/null
+++ b/qa/suites/rados/thrash/2-recovery-overrides/more-active-recovery.yaml
@@ -0,0 +1 @@
+.qa/overrides/more-active-recovery.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash/backoff/.qa b/qa/suites/rados/thrash/backoff/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash/backoff/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash/backoff/normal.yaml b/qa/suites/rados/thrash/backoff/normal.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash/backoff/normal.yaml
diff --git a/qa/suites/rados/thrash/backoff/peering.yaml b/qa/suites/rados/thrash/backoff/peering.yaml
new file mode 100644
index 00000000..66d06117
--- /dev/null
+++ b/qa/suites/rados/thrash/backoff/peering.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd backoff on peering: true
diff --git a/qa/suites/rados/thrash/backoff/peering_and_degraded.yaml b/qa/suites/rados/thrash/backoff/peering_and_degraded.yaml
new file mode 100644
index 00000000..e6109906
--- /dev/null
+++ b/qa/suites/rados/thrash/backoff/peering_and_degraded.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd backoff on peering: true
+ osd backoff on degraded: true
diff --git a/qa/suites/rados/thrash/ceph.yaml b/qa/suites/rados/thrash/ceph.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/rados/thrash/ceph.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/rados/thrash/clusters/+ b/qa/suites/rados/thrash/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash/clusters/+
diff --git a/qa/suites/rados/thrash/clusters/.qa b/qa/suites/rados/thrash/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash/clusters/fixed-2.yaml b/qa/suites/rados/thrash/clusters/fixed-2.yaml
new file mode 120000
index 00000000..230ff0fd
--- /dev/null
+++ b/qa/suites/rados/thrash/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash/clusters/openstack.yaml b/qa/suites/rados/thrash/clusters/openstack.yaml
new file mode 100644
index 00000000..b0f3b9b4
--- /dev/null
+++ b/qa/suites/rados/thrash/clusters/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 30 # GB
diff --git a/qa/suites/rados/thrash/crc-failures/bad_map_crc_failure.yaml b/qa/suites/rados/thrash/crc-failures/bad_map_crc_failure.yaml
new file mode 100644
index 00000000..1e04fb36
--- /dev/null
+++ b/qa/suites/rados/thrash/crc-failures/bad_map_crc_failure.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd inject bad map crc probability: 0.1
+ log-whitelist:
+ - failed to encode map
diff --git a/qa/suites/rados/thrash/crc-failures/default.yaml b/qa/suites/rados/thrash/crc-failures/default.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash/crc-failures/default.yaml
diff --git a/qa/suites/rados/thrash/d-balancer/.qa b/qa/suites/rados/thrash/d-balancer/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash/d-balancer/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash/d-balancer/crush-compat.yaml b/qa/suites/rados/thrash/d-balancer/crush-compat.yaml
new file mode 100644
index 00000000..aa867660
--- /dev/null
+++ b/qa/suites/rados/thrash/d-balancer/crush-compat.yaml
@@ -0,0 +1,6 @@
+tasks:
+- exec:
+ mon.a:
+ - while ! ceph balancer status ; do sleep 1 ; done
+ - ceph balancer mode crush-compat
+ - ceph balancer on
diff --git a/qa/suites/rados/thrash/d-balancer/off.yaml b/qa/suites/rados/thrash/d-balancer/off.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash/d-balancer/off.yaml
diff --git a/qa/suites/rados/thrash/d-balancer/upmap.yaml b/qa/suites/rados/thrash/d-balancer/upmap.yaml
new file mode 100644
index 00000000..788eebee
--- /dev/null
+++ b/qa/suites/rados/thrash/d-balancer/upmap.yaml
@@ -0,0 +1,7 @@
+tasks:
+- exec:
+ mon.a:
+ - while ! ceph balancer status ; do sleep 1 ; done
+ - ceph osd set-require-min-compat-client luminous
+ - ceph balancer mode upmap
+ - ceph balancer on
diff --git a/qa/suites/rados/thrash/msgr b/qa/suites/rados/thrash/msgr
new file mode 120000
index 00000000..57bee80d
--- /dev/null
+++ b/qa/suites/rados/thrash/msgr
@@ -0,0 +1 @@
+.qa/msgr \ No newline at end of file
diff --git a/qa/suites/rados/thrash/msgr-failures/.qa b/qa/suites/rados/thrash/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash/msgr-failures/fastclose.yaml b/qa/suites/rados/thrash/msgr-failures/fastclose.yaml
new file mode 100644
index 00000000..02121726
--- /dev/null
+++ b/qa/suites/rados/thrash/msgr-failures/fastclose.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 2500
+ ms tcp read timeout: 5
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/thrash/msgr-failures/few.yaml b/qa/suites/rados/thrash/msgr-failures/few.yaml
new file mode 100644
index 00000000..527eadb4
--- /dev/null
+++ b/qa/suites/rados/thrash/msgr-failures/few.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ osd:
+ osd heartbeat use min delay socket: true
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/thrash/msgr-failures/osd-delay.yaml b/qa/suites/rados/thrash/msgr-failures/osd-delay.yaml
new file mode 100644
index 00000000..91c14725
--- /dev/null
+++ b/qa/suites/rados/thrash/msgr-failures/osd-delay.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 2500
+ ms inject delay type: osd
+ ms inject delay probability: .005
+ ms inject delay max: 1
+ ms inject internal delays: .002
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/thrash/objectstore b/qa/suites/rados/thrash/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/thrash/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/thrash/rados.yaml b/qa/suites/rados/thrash/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/thrash/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash/supported-random-distro$ b/qa/suites/rados/thrash/supported-random-distro$
new file mode 120000
index 00000000..7cef21ee
--- /dev/null
+++ b/qa/suites/rados/thrash/supported-random-distro$
@@ -0,0 +1 @@
+../basic/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rados/thrash/thrashers/.qa b/qa/suites/rados/thrash/thrashers/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash/thrashers/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash/thrashers/careful.yaml b/qa/suites/rados/thrash/thrashers/careful.yaml
new file mode 100644
index 00000000..85e0c268
--- /dev/null
+++ b/qa/suites/rados/thrash/thrashers/careful.yaml
@@ -0,0 +1,26 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ conf:
+ osd:
+ osd debug reject backfill probability: .3
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 3
+ osd snap trim sleep: 2
+ mon:
+ mon min osdmap epochs: 50
+ paxos service trim min: 10
+ # prune full osdmaps regularly
+ mon osdmap full prune min: 15
+ mon osdmap full prune interval: 2
+ mon osdmap full prune txsize: 2
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ aggressive_pg_num_changes: false
diff --git a/qa/suites/rados/thrash/thrashers/default.yaml b/qa/suites/rados/thrash/thrashers/default.yaml
new file mode 100644
index 00000000..536e85cb
--- /dev/null
+++ b/qa/suites/rados/thrash/thrashers/default.yaml
@@ -0,0 +1,26 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ conf:
+ osd:
+ osd debug reject backfill probability: .3
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd max backfills: 3
+ osd snap trim sleep: 2
+ osd delete sleep: 1
+ mon:
+ mon min osdmap epochs: 50
+ paxos service trim min: 10
+ # prune full osdmaps regularly
+ mon osdmap full prune min: 15
+ mon osdmap full prune interval: 2
+ mon osdmap full prune txsize: 2
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
diff --git a/qa/suites/rados/thrash/thrashers/mapgap.yaml b/qa/suites/rados/thrash/thrashers/mapgap.yaml
new file mode 100644
index 00000000..bbc3dbdc
--- /dev/null
+++ b/qa/suites/rados/thrash/thrashers/mapgap.yaml
@@ -0,0 +1,27 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ - osd_map_cache_size
+ conf:
+ mon:
+ mon min osdmap epochs: 50
+ paxos service trim min: 10
+ # prune full osdmaps regularly
+ mon osdmap full prune min: 15
+ mon osdmap full prune interval: 2
+ mon osdmap full prune txsize: 2
+ osd:
+ osd map cache size: 1
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ osd scrub during recovery: false
+ osd max backfills: 6
+tasks:
+- thrashosds:
+ timeout: 1800
+ chance_pgnum_grow: 0.25
+ chance_pgnum_shrink: 0.25
+ chance_pgpnum_fix: 0.25
+ chance_test_map_discontinuity: 2
diff --git a/qa/suites/rados/thrash/thrashers/morepggrow.yaml b/qa/suites/rados/thrash/thrashers/morepggrow.yaml
new file mode 100644
index 00000000..91d2173e
--- /dev/null
+++ b/qa/suites/rados/thrash/thrashers/morepggrow.yaml
@@ -0,0 +1,22 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ journal throttle high multiple: 2
+ journal throttle max multiple: 10
+ filestore queue throttle high multiple: 2
+ filestore queue throttle max multiple: 10
+ osd max backfills: 9
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 3
+ chance_pgpnum_fix: 1
+openstack:
+- volumes:
+ size: 50
diff --git a/qa/suites/rados/thrash/thrashers/none.yaml b/qa/suites/rados/thrash/thrashers/none.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/thrash/thrashers/none.yaml
diff --git a/qa/suites/rados/thrash/thrashers/pggrow.yaml b/qa/suites/rados/thrash/thrashers/pggrow.yaml
new file mode 100644
index 00000000..8721fd18
--- /dev/null
+++ b/qa/suites/rados/thrash/thrashers/pggrow.yaml
@@ -0,0 +1,24 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ conf:
+ osd:
+ osd scrub min interval: 60
+ osd scrub max interval: 120
+ filestore odsync write: true
+ osd max backfills: 2
+ osd snap trim sleep: .5
+ mon:
+ mon min osdmap epochs: 50
+ paxos service trim min: 10
+ # prune full osdmaps regularly
+ mon osdmap full prune min: 15
+ mon osdmap full prune interval: 2
+ mon osdmap full prune txsize: 2
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 2
+ chance_pgpnum_fix: 1
diff --git a/qa/suites/rados/thrash/thrashosds-health.yaml b/qa/suites/rados/thrash/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/rados/thrash/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rados/thrash/workloads/.qa b/qa/suites/rados/thrash/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/thrash/workloads/admin_socket_objecter_requests.yaml b/qa/suites/rados/thrash/workloads/admin_socket_objecter_requests.yaml
new file mode 100644
index 00000000..8c9764ad
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/admin_socket_objecter_requests.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ client.0:
+ admin socket: /var/run/ceph/ceph-$name.asok
+tasks:
+- radosbench:
+ clients: [client.0]
+ time: 150
+- admin_socket:
+ client.0:
+ objecter_requests:
+ test: "http://git.ceph.com/?p={repo};a=blob_plain;f=src/test/admin_socket/objecter_requests;hb={branch}"
diff --git a/qa/suites/rados/thrash/workloads/cache-agent-big.yaml b/qa/suites/rados/thrash/workloads/cache-agent-big.yaml
new file mode 100644
index 00000000..31a964d1
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/cache-agent-big.yaml
@@ -0,0 +1,36 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - must scrub before tier agent can activate
+ conf:
+ osd:
+ # override short_pg_log_entries.yaml (which sets these under [global])
+ osd_min_pg_log_entries: 3000
+ osd_max_pg_log_entries: 3000
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd erasure-code-profile set myprofile crush-failure-domain=osd m=2 k=2
+ - sudo ceph osd pool create base 4 4 erasure myprofile
+ - sudo ceph osd pool application enable base rados
+ - sudo ceph osd pool set base min_size 2
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add base cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay base cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 60
+ - sudo ceph osd pool set cache target_max_objects 5000
+- rados:
+ clients: [client.0]
+ pools: [base]
+ ops: 10000
+ objects: 6600
+ max_seconds: 1200
+ size: 1024
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ copy_from: 50
diff --git a/qa/suites/rados/thrash/workloads/cache-agent-small.yaml b/qa/suites/rados/thrash/workloads/cache-agent-small.yaml
new file mode 100644
index 00000000..f082b0b9
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/cache-agent-small.yaml
@@ -0,0 +1,34 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - must scrub before tier agent can activate
+ conf:
+ osd:
+ # override short_pg_log_entries.yaml (which sets these under [global])
+ osd_min_pg_log_entries: 3000
+ osd_max_pg_log_entries: 3000
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create base 4
+ - sudo ceph osd pool application enable base rados
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add base cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay base cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 60
+ - sudo ceph osd pool set cache target_max_objects 250
+ - sudo ceph osd pool set cache min_read_recency_for_promote 2
+ - sudo ceph osd pool set cache min_write_recency_for_promote 2
+- rados:
+ clients: [client.0]
+ pools: [base]
+ ops: 4000
+ objects: 500
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ copy_from: 50
diff --git a/qa/suites/rados/thrash/workloads/cache-pool-snaps-readproxy.yaml b/qa/suites/rados/thrash/workloads/cache-pool-snaps-readproxy.yaml
new file mode 100644
index 00000000..b84d4d95
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/cache-pool-snaps-readproxy.yaml
@@ -0,0 +1,39 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - must scrub before tier agent can activate
+ conf:
+ osd:
+ # override short_pg_log_entries.yaml (which sets these under [global])
+ osd_min_pg_log_entries: 3000
+ osd_max_pg_log_entries: 3000
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create base 4
+ - sudo ceph osd pool application enable base rados
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add base cache
+ - sudo ceph osd tier cache-mode cache readproxy
+ - sudo ceph osd tier set-overlay base cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 3600
+ - sudo ceph osd pool set cache target_max_objects 250
+- rados:
+ clients: [client.0]
+ pools: [base]
+ ops: 4000
+ objects: 500
+ pool_snaps: true
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ copy_from: 50
+ cache_flush: 50
+ cache_try_flush: 50
+ cache_evict: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
diff --git a/qa/suites/rados/thrash/workloads/cache-pool-snaps.yaml b/qa/suites/rados/thrash/workloads/cache-pool-snaps.yaml
new file mode 100644
index 00000000..8d712e86
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/cache-pool-snaps.yaml
@@ -0,0 +1,44 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - must scrub before tier agent can activate
+ conf:
+ osd:
+ # override short_pg_log_entries.yaml (which sets these under [global])
+ osd_min_pg_log_entries: 3000
+ osd_max_pg_log_entries: 3000
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create base 4
+ - sudo ceph osd pool application enable base rados
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add base cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay base cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 3600
+ - sudo ceph osd pool set cache target_max_objects 250
+ - sudo ceph osd pool set cache min_read_recency_for_promote 0
+ - sudo ceph osd pool set cache min_write_recency_for_promote 0
+- rados:
+ clients: [client.0]
+ pools: [base]
+ ops: 4000
+ objects: 500
+ pool_snaps: true
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ copy_from: 50
+ cache_flush: 50
+ cache_try_flush: 50
+ cache_evict: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+openstack:
+ - machine:
+ ram: 15000 # MB
diff --git a/qa/suites/rados/thrash/workloads/cache-snaps.yaml b/qa/suites/rados/thrash/workloads/cache-snaps.yaml
new file mode 100644
index 00000000..7ece997e
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/cache-snaps.yaml
@@ -0,0 +1,39 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - must scrub before tier agent can activate
+ conf:
+ osd:
+ # override short_pg_log_entries.yaml (which sets these under [global])
+ osd_min_pg_log_entries: 3000
+ osd_max_pg_log_entries: 3000
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create base 4
+ - sudo ceph osd pool application enable base rados
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add base cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay base cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 3600
+ - sudo ceph osd pool set cache target_max_objects 250
+ - sudo ceph osd pool set cache min_read_recency_for_promote 2
+- rados:
+ clients: [client.0]
+ pools: [base]
+ ops: 4000
+ objects: 500
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ copy_from: 50
+ cache_flush: 50
+ cache_try_flush: 50
+ cache_evict: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
diff --git a/qa/suites/rados/thrash/workloads/cache.yaml b/qa/suites/rados/thrash/workloads/cache.yaml
new file mode 100644
index 00000000..42cfa6cb
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/cache.yaml
@@ -0,0 +1,36 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - must scrub before tier agent can activate
+ conf:
+ osd:
+ # override short_pg_log_entries.yaml (which sets these under [global])
+ osd_min_pg_log_entries: 3000
+ osd_max_pg_log_entries: 3000
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create base 4
+ - sudo ceph osd pool application enable base rados
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add base cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay base cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 3600
+ - sudo ceph osd pool set cache min_read_recency_for_promote 0
+ - sudo ceph osd pool set cache min_write_recency_for_promote 0
+- rados:
+ clients: [client.0]
+ pools: [base]
+ ops: 4000
+ objects: 500
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ copy_from: 50
+ cache_flush: 50
+ cache_try_flush: 50
+ cache_evict: 50
diff --git a/qa/suites/rados/thrash/workloads/pool-snaps-few-objects.yaml b/qa/suites/rados/thrash/workloads/pool-snaps-few-objects.yaml
new file mode 100644
index 00000000..1f0759d9
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/pool-snaps-few-objects.yaml
@@ -0,0 +1,18 @@
+override:
+ conf:
+ osd:
+ osd deep scrub update digest min age: 0
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ pool_snaps: true
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
diff --git a/qa/suites/rados/thrash/workloads/rados_api_tests.yaml b/qa/suites/rados/thrash/workloads/rados_api_tests.yaml
new file mode 100644
index 00000000..7c23a5ca
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/rados_api_tests.yaml
@@ -0,0 +1,20 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - reached quota
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(PG_AVAILABILITY\)
+ crush_tunables: jewel
+ conf:
+ client:
+ debug ms: 1
+ debug objecter: 20
+ debug rados: 20
+ mon:
+ mon warn on pool no app: false
+ debug mgrc: 20
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rados/test.sh
diff --git a/qa/suites/rados/thrash/workloads/radosbench-high-concurrency.yaml b/qa/suites/rados/thrash/workloads/radosbench-high-concurrency.yaml
new file mode 100644
index 00000000..902c4b56
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/radosbench-high-concurrency.yaml
@@ -0,0 +1,49 @@
+overrides:
+ ceph:
+ conf:
+ client.0:
+ debug ms: 1
+ debug objecter: 20
+ debug rados: 20
+tasks:
+- full_sequential:
+ - radosbench:
+ clients: [client.0]
+ concurrency: 128
+ size: 8192
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ concurrency: 128
+ size: 8192
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ concurrency: 128
+ size: 8192
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ concurrency: 128
+ size: 8192
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ concurrency: 128
+ size: 8192
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ concurrency: 128
+ size: 8192
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ concurrency: 128
+ size: 8192
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ concurrency: 128
+ size: 8192
+ time: 90
diff --git a/qa/suites/rados/thrash/workloads/radosbench.yaml b/qa/suites/rados/thrash/workloads/radosbench.yaml
new file mode 100644
index 00000000..1b25004a
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/radosbench.yaml
@@ -0,0 +1,33 @@
+overrides:
+ ceph:
+ conf:
+ client.0:
+ debug ms: 1
+ debug objecter: 20
+ debug rados: 20
+tasks:
+- full_sequential:
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
diff --git a/qa/suites/rados/thrash/workloads/redirect.yaml b/qa/suites/rados/thrash/workloads/redirect.yaml
new file mode 100644
index 00000000..bebce845
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/redirect.yaml
@@ -0,0 +1,15 @@
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create low_tier 4
+- rados:
+ clients: [client.0]
+ low_tier_pool: 'low_tier'
+ ops: 4000
+ objects: 500
+ set_redirect: true
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ copy_from: 50
diff --git a/qa/suites/rados/thrash/workloads/redirect_promote_tests.yaml b/qa/suites/rados/thrash/workloads/redirect_promote_tests.yaml
new file mode 100644
index 00000000..c2787c43
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/redirect_promote_tests.yaml
@@ -0,0 +1,14 @@
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create low_tier 4
+- rados:
+ clients: [client.0]
+ low_tier_pool: 'low_tier'
+ ops: 4000
+ objects: 500
+ set_redirect: true
+ op_weights:
+ set_redirect: 100
+ read: 50
+ tier_promote: 30
diff --git a/qa/suites/rados/thrash/workloads/redirect_set_object.yaml b/qa/suites/rados/thrash/workloads/redirect_set_object.yaml
new file mode 100644
index 00000000..06ba60c7
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/redirect_set_object.yaml
@@ -0,0 +1,13 @@
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create low_tier 4
+- rados:
+ clients: [client.0]
+ low_tier_pool: 'low_tier'
+ ops: 4000
+ objects: 500
+ set_redirect: true
+ op_weights:
+ set_redirect: 100
+ copy_from: 100
diff --git a/qa/suites/rados/thrash/workloads/set-chunks-read.yaml b/qa/suites/rados/thrash/workloads/set-chunks-read.yaml
new file mode 100644
index 00000000..1abbdd75
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/set-chunks-read.yaml
@@ -0,0 +1,13 @@
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create low_tier 4
+- rados:
+ clients: [client.0]
+ low_tier_pool: 'low_tier'
+ ops: 4000
+ objects: 300
+ set_chunk: true
+ op_weights:
+ chunk_read: 100
+ tier_promote: 10
diff --git a/qa/suites/rados/thrash/workloads/small-objects.yaml b/qa/suites/rados/thrash/workloads/small-objects.yaml
new file mode 100644
index 00000000..f5a18ae6
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/small-objects.yaml
@@ -0,0 +1,24 @@
+overrides:
+ ceph:
+ crush_tunables: jewel
+ conf:
+ mon:
+ mon osd initial require min compat client: jewel
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 400000
+ max_seconds: 600
+ max_in_flight: 64
+ objects: 1024
+ size: 16384
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
+ setattr: 25
+ rmattr: 25
diff --git a/qa/suites/rados/thrash/workloads/snaps-few-objects.yaml b/qa/suites/rados/thrash/workloads/snaps-few-objects.yaml
new file mode 100644
index 00000000..aa82d973
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/snaps-few-objects.yaml
@@ -0,0 +1,13 @@
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
diff --git a/qa/suites/rados/thrash/workloads/write_fadvise_dontneed.yaml b/qa/suites/rados/thrash/workloads/write_fadvise_dontneed.yaml
new file mode 100644
index 00000000..606dcae6
--- /dev/null
+++ b/qa/suites/rados/thrash/workloads/write_fadvise_dontneed.yaml
@@ -0,0 +1,8 @@
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ write_fadvise_dontneed: true
+ op_weights:
+ write: 100
diff --git a/qa/suites/rados/upgrade/.qa b/qa/suites/rados/upgrade/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/upgrade/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/upgrade/mimic-x-singleton b/qa/suites/rados/upgrade/mimic-x-singleton
new file mode 120000
index 00000000..ebecaf67
--- /dev/null
+++ b/qa/suites/rados/upgrade/mimic-x-singleton
@@ -0,0 +1 @@
+../../upgrade/mimic-x-singleton \ No newline at end of file
diff --git a/qa/suites/rados/verify/% b/qa/suites/rados/verify/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/verify/%
diff --git a/qa/suites/rados/verify/.qa b/qa/suites/rados/verify/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/verify/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/verify/ceph.yaml b/qa/suites/rados/verify/ceph.yaml
new file mode 100644
index 00000000..c0857e14
--- /dev/null
+++ b/qa/suites/rados/verify/ceph.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ mon:
+ mon min osdmap epochs: 50
+ paxos service trim min: 10
+ # prune full osdmaps regularly
+ mon osdmap full prune min: 15
+ mon osdmap full prune interval: 2
+ mon osdmap full prune txsize: 2
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/rados/verify/clusters/+ b/qa/suites/rados/verify/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/verify/clusters/+
diff --git a/qa/suites/rados/verify/clusters/.qa b/qa/suites/rados/verify/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/verify/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/verify/clusters/fixed-2.yaml b/qa/suites/rados/verify/clusters/fixed-2.yaml
new file mode 120000
index 00000000..230ff0fd
--- /dev/null
+++ b/qa/suites/rados/verify/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rados/verify/clusters/openstack.yaml b/qa/suites/rados/verify/clusters/openstack.yaml
new file mode 100644
index 00000000..e559d912
--- /dev/null
+++ b/qa/suites/rados/verify/clusters/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
diff --git a/qa/suites/rados/verify/d-thrash/.qa b/qa/suites/rados/verify/d-thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/verify/d-thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/verify/d-thrash/default/+ b/qa/suites/rados/verify/d-thrash/default/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/verify/d-thrash/default/+
diff --git a/qa/suites/rados/verify/d-thrash/default/.qa b/qa/suites/rados/verify/d-thrash/default/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/verify/d-thrash/default/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/verify/d-thrash/default/default.yaml b/qa/suites/rados/verify/d-thrash/default/default.yaml
new file mode 100644
index 00000000..8f2b2667
--- /dev/null
+++ b/qa/suites/rados/verify/d-thrash/default/default.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
diff --git a/qa/suites/rados/verify/d-thrash/default/thrashosds-health.yaml b/qa/suites/rados/verify/d-thrash/default/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/rados/verify/d-thrash/default/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rados/verify/d-thrash/none.yaml b/qa/suites/rados/verify/d-thrash/none.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rados/verify/d-thrash/none.yaml
diff --git a/qa/suites/rados/verify/msgr b/qa/suites/rados/verify/msgr
new file mode 120000
index 00000000..57bee80d
--- /dev/null
+++ b/qa/suites/rados/verify/msgr
@@ -0,0 +1 @@
+.qa/msgr \ No newline at end of file
diff --git a/qa/suites/rados/verify/msgr-failures/.qa b/qa/suites/rados/verify/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/verify/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/verify/msgr-failures/few.yaml b/qa/suites/rados/verify/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/rados/verify/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rados/verify/objectstore b/qa/suites/rados/verify/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rados/verify/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rados/verify/rados.yaml b/qa/suites/rados/verify/rados.yaml
new file mode 120000
index 00000000..d256979c
--- /dev/null
+++ b/qa/suites/rados/verify/rados.yaml
@@ -0,0 +1 @@
+.qa/config/rados.yaml \ No newline at end of file
diff --git a/qa/suites/rados/verify/tasks/.qa b/qa/suites/rados/verify/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/verify/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/verify/tasks/mon_recovery.yaml b/qa/suites/rados/verify/tasks/mon_recovery.yaml
new file mode 100644
index 00000000..266a4e47
--- /dev/null
+++ b/qa/suites/rados/verify/tasks/mon_recovery.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(MON_DOWN\)
+ - \(OSDMAP_FLAGS\)
+ - \(SMALLER_PGP_NUM\)
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- mon_recovery:
diff --git a/qa/suites/rados/verify/tasks/rados_api_tests.yaml b/qa/suites/rados/verify/tasks/rados_api_tests.yaml
new file mode 100644
index 00000000..79f24479
--- /dev/null
+++ b/qa/suites/rados/verify/tasks/rados_api_tests.yaml
@@ -0,0 +1,30 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - reached quota
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_FULL\)
+ - \(SMALLER_PGP_NUM\)
+ - \(SLOW_OPS\)
+ - \(CACHE_POOL_NEAR_FULL\)
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(PG_AVAILABILITY\)
+ - \(OBJECT_MISPLACED\)
+ - slow request
+ conf:
+ client:
+ debug ms: 1
+ debug objecter: 20
+ debug rados: 20
+ debug monc: 20
+ mon:
+ mon warn on pool no app: false
+tasks:
+- workunit:
+ timeout: 6h
+ env:
+ ALLOW_TIMEOUTS: "1"
+ clients:
+ client.0:
+ - rados/test.sh
diff --git a/qa/suites/rados/verify/tasks/rados_cls_all.yaml b/qa/suites/rados/verify/tasks/rados_cls_all.yaml
new file mode 100644
index 00000000..bcc58e19
--- /dev/null
+++ b/qa/suites/rados/verify/tasks/rados_cls_all.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd_class_load_list: "cephfs hello journal lock log numops rbd refcount
+ rgw sdk timeindex user version"
+ osd_class_default_list: "cephfs hello journal lock log numops rbd refcount
+ rgw sdk timeindex user version"
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - cls
diff --git a/qa/suites/rados/verify/validater/.qa b/qa/suites/rados/verify/validater/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rados/verify/validater/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rados/verify/validater/lockdep.yaml b/qa/suites/rados/verify/validater/lockdep.yaml
new file mode 100644
index 00000000..25f84355
--- /dev/null
+++ b/qa/suites/rados/verify/validater/lockdep.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ lockdep: true
diff --git a/qa/suites/rados/verify/validater/valgrind.yaml b/qa/suites/rados/verify/validater/valgrind.yaml
new file mode 100644
index 00000000..5ac297cc
--- /dev/null
+++ b/qa/suites/rados/verify/validater/valgrind.yaml
@@ -0,0 +1,32 @@
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+os_type: centos
+os_version: '7.8'
+
+overrides:
+ install:
+ ceph:
+ debuginfo: true
+ ceph:
+ conf:
+ global:
+ osd heartbeat grace: 80
+ mon:
+ mon osd crush smoke test: false
+ osd:
+ osd fast shutdown: false
+ debug bluestore: 1
+ debug bluefs: 1
+ log-whitelist:
+ - overall HEALTH_
+# valgrind is slow.. we might get PGs stuck peering etc
+ - \(PG_
+# mons sometimes are left off of initial quorum due to valgrind slowness. ok to whitelist here because we'll still catch an actual crash due to the core
+ - \(MON_DOWN\)
+ - \(SLOW_OPS\)
+ - slow request
+ valgrind:
+ mon: [--tool=memcheck, --leak-check=full, --show-reachable=yes]
+ osd: [--tool=memcheck]
+ mds: [--tool=memcheck]
+# https://tracker.ceph.com/issues/38621
+# mgr: [--tool=memcheck]
diff --git a/qa/suites/rbd/.qa b/qa/suites/rbd/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/basic/% b/qa/suites/rbd/basic/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/basic/%
diff --git a/qa/suites/rbd/basic/.qa b/qa/suites/rbd/basic/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/basic/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/basic/base/.qa b/qa/suites/rbd/basic/base/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/basic/base/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/basic/base/install.yaml b/qa/suites/rbd/basic/base/install.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/rbd/basic/base/install.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/rbd/basic/cachepool/.qa b/qa/suites/rbd/basic/cachepool/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/basic/cachepool/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/basic/cachepool/none.yaml b/qa/suites/rbd/basic/cachepool/none.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/basic/cachepool/none.yaml
diff --git a/qa/suites/rbd/basic/cachepool/small.yaml b/qa/suites/rbd/basic/cachepool/small.yaml
new file mode 100644
index 00000000..1b505657
--- /dev/null
+++ b/qa/suites/rbd/basic/cachepool/small.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NEAR_FULL\)
+ - \(CACHE_POOL_NO_HIT_SET\)
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add rbd cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay rbd cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 60
+ - sudo ceph osd pool set cache target_max_objects 250
diff --git a/qa/suites/rbd/basic/clusters/+ b/qa/suites/rbd/basic/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/basic/clusters/+
diff --git a/qa/suites/rbd/basic/clusters/.qa b/qa/suites/rbd/basic/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/basic/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/basic/clusters/fixed-1.yaml b/qa/suites/rbd/basic/clusters/fixed-1.yaml
new file mode 120000
index 00000000..02df5dd0
--- /dev/null
+++ b/qa/suites/rbd/basic/clusters/fixed-1.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-1.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/basic/clusters/openstack.yaml b/qa/suites/rbd/basic/clusters/openstack.yaml
new file mode 100644
index 00000000..f4d1349b
--- /dev/null
+++ b/qa/suites/rbd/basic/clusters/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 30 # GB
diff --git a/qa/suites/rbd/basic/msgr-failures/.qa b/qa/suites/rbd/basic/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/basic/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/basic/msgr-failures/few.yaml b/qa/suites/rbd/basic/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/rbd/basic/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rbd/basic/objectstore b/qa/suites/rbd/basic/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rbd/basic/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rbd/basic/supported-random-distro$ b/qa/suites/rbd/basic/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rbd/basic/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rbd/basic/tasks/.qa b/qa/suites/rbd/basic/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/basic/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/basic/tasks/rbd_api_tests_old_format.yaml b/qa/suites/rbd/basic/tasks/rbd_api_tests_old_format.yaml
new file mode 100644
index 00000000..fe1e26d5
--- /dev/null
+++ b/qa/suites/rbd/basic/tasks/rbd_api_tests_old_format.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
diff --git a/qa/suites/rbd/basic/tasks/rbd_cls_tests.yaml b/qa/suites/rbd/basic/tasks/rbd_cls_tests.yaml
new file mode 100644
index 00000000..51b35e2e
--- /dev/null
+++ b/qa/suites/rbd/basic/tasks/rbd_cls_tests.yaml
@@ -0,0 +1,7 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - cls/test_cls_rbd.sh
+ - cls/test_cls_lock.sh
+ - cls/test_cls_journal.sh
diff --git a/qa/suites/rbd/basic/tasks/rbd_lock_and_fence.yaml b/qa/suites/rbd/basic/tasks/rbd_lock_and_fence.yaml
new file mode 100644
index 00000000..d2c80ad6
--- /dev/null
+++ b/qa/suites/rbd/basic/tasks/rbd_lock_and_fence.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_lock_fence.sh
diff --git a/qa/suites/rbd/basic/tasks/rbd_python_api_tests_old_format.yaml b/qa/suites/rbd/basic/tasks/rbd_python_api_tests_old_format.yaml
new file mode 100644
index 00000000..90bc152e
--- /dev/null
+++ b/qa/suites/rbd/basic/tasks/rbd_python_api_tests_old_format.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - \(SLOW_OPS\)
+ - slow request
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
diff --git a/qa/suites/rbd/cli/% b/qa/suites/rbd/cli/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/cli/%
diff --git a/qa/suites/rbd/cli/.qa b/qa/suites/rbd/cli/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/cli/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/cli/base/.qa b/qa/suites/rbd/cli/base/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/cli/base/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/cli/base/install.yaml b/qa/suites/rbd/cli/base/install.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/rbd/cli/base/install.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/rbd/cli/clusters b/qa/suites/rbd/cli/clusters
new file mode 120000
index 00000000..ae92569e
--- /dev/null
+++ b/qa/suites/rbd/cli/clusters
@@ -0,0 +1 @@
+../basic/clusters \ No newline at end of file
diff --git a/qa/suites/rbd/cli/features/.qa b/qa/suites/rbd/cli/features/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/cli/features/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/cli/features/defaults.yaml b/qa/suites/rbd/cli/features/defaults.yaml
new file mode 100644
index 00000000..75afd68d
--- /dev/null
+++ b/qa/suites/rbd/cli/features/defaults.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default features: 61
diff --git a/qa/suites/rbd/cli/features/journaling.yaml b/qa/suites/rbd/cli/features/journaling.yaml
new file mode 100644
index 00000000..6cea62a8
--- /dev/null
+++ b/qa/suites/rbd/cli/features/journaling.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default features: 125
diff --git a/qa/suites/rbd/cli/features/layering.yaml b/qa/suites/rbd/cli/features/layering.yaml
new file mode 100644
index 00000000..429b8e14
--- /dev/null
+++ b/qa/suites/rbd/cli/features/layering.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default features: 1
diff --git a/qa/suites/rbd/cli/msgr-failures/.qa b/qa/suites/rbd/cli/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/cli/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/cli/msgr-failures/few.yaml b/qa/suites/rbd/cli/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/rbd/cli/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rbd/cli/objectstore b/qa/suites/rbd/cli/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rbd/cli/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rbd/cli/pool/.qa b/qa/suites/rbd/cli/pool/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/cli/pool/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/cli/pool/ec-data-pool.yaml b/qa/suites/rbd/cli/pool/ec-data-pool.yaml
new file mode 100644
index 00000000..376bf08e
--- /dev/null
+++ b/qa/suites/rbd/cli/pool/ec-data-pool.yaml
@@ -0,0 +1,27 @@
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd erasure-code-profile set teuthologyprofile crush-failure-domain=osd m=1 k=2
+ - sudo ceph osd pool create datapool 4 4 erasure teuthologyprofile
+ - sudo ceph osd pool set datapool allow_ec_overwrites true
+ - rbd pool init datapool
+
+overrides:
+ thrashosds:
+ bdev_inject_crash: 2
+ bdev_inject_crash_probability: .5
+ ceph:
+ fs: xfs
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ conf:
+ client:
+ rbd default data pool: datapool
+ osd: # force bluestore since it's required for ec overwrites
+ osd objectstore: bluestore
+ bluestore block size: 96636764160
+ enable experimental unrecoverable data corrupting features: "*"
+ osd debug randomize hobject sort order: false
+# this doesn't work with failures bc the log writes are not atomic across the two backends
+# bluestore bluefs env mirror: true
diff --git a/qa/suites/rbd/cli/pool/none.yaml b/qa/suites/rbd/cli/pool/none.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/cli/pool/none.yaml
diff --git a/qa/suites/rbd/cli/pool/replicated-data-pool.yaml b/qa/suites/rbd/cli/pool/replicated-data-pool.yaml
new file mode 100644
index 00000000..c5647dba
--- /dev/null
+++ b/qa/suites/rbd/cli/pool/replicated-data-pool.yaml
@@ -0,0 +1,11 @@
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create datapool 4
+ - rbd pool init datapool
+
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default data pool: datapool
diff --git a/qa/suites/rbd/cli/pool/small-cache-pool.yaml b/qa/suites/rbd/cli/pool/small-cache-pool.yaml
new file mode 100644
index 00000000..1b505657
--- /dev/null
+++ b/qa/suites/rbd/cli/pool/small-cache-pool.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NEAR_FULL\)
+ - \(CACHE_POOL_NO_HIT_SET\)
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add rbd cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay rbd cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 60
+ - sudo ceph osd pool set cache target_max_objects 250
diff --git a/qa/suites/rbd/cli/supported-random-distro$ b/qa/suites/rbd/cli/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rbd/cli/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rbd/cli/workloads/.qa b/qa/suites/rbd/cli/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/cli/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/cli/workloads/rbd_cli_generic.yaml b/qa/suites/rbd/cli/workloads/rbd_cli_generic.yaml
new file mode 100644
index 00000000..be43b3e8
--- /dev/null
+++ b/qa/suites/rbd/cli/workloads/rbd_cli_generic.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/cli_generic.sh
diff --git a/qa/suites/rbd/cli/workloads/rbd_cli_groups.yaml b/qa/suites/rbd/cli/workloads/rbd_cli_groups.yaml
new file mode 100644
index 00000000..6ff83634
--- /dev/null
+++ b/qa/suites/rbd/cli/workloads/rbd_cli_groups.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/rbd_groups.sh
diff --git a/qa/suites/rbd/cli/workloads/rbd_cli_import_export.yaml b/qa/suites/rbd/cli/workloads/rbd_cli_import_export.yaml
new file mode 100644
index 00000000..b08f2612
--- /dev/null
+++ b/qa/suites/rbd/cli/workloads/rbd_cli_import_export.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/import_export.sh
diff --git a/qa/suites/rbd/cli_v1/% b/qa/suites/rbd/cli_v1/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/%
diff --git a/qa/suites/rbd/cli_v1/.qa b/qa/suites/rbd/cli_v1/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/cli_v1/base/.qa b/qa/suites/rbd/cli_v1/base/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/base/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/cli_v1/base/install.yaml b/qa/suites/rbd/cli_v1/base/install.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/base/install.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/rbd/cli_v1/clusters b/qa/suites/rbd/cli_v1/clusters
new file mode 120000
index 00000000..ae92569e
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/clusters
@@ -0,0 +1 @@
+../basic/clusters \ No newline at end of file
diff --git a/qa/suites/rbd/cli_v1/features/.qa b/qa/suites/rbd/cli_v1/features/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/features/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/cli_v1/features/format-1.yaml b/qa/suites/rbd/cli_v1/features/format-1.yaml
new file mode 100644
index 00000000..9c532083
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/features/format-1.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default format: 1
diff --git a/qa/suites/rbd/cli_v1/msgr-failures/.qa b/qa/suites/rbd/cli_v1/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/cli_v1/msgr-failures/few.yaml b/qa/suites/rbd/cli_v1/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rbd/cli_v1/objectstore b/qa/suites/rbd/cli_v1/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rbd/cli_v1/pool/.qa b/qa/suites/rbd/cli_v1/pool/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/pool/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/cli_v1/pool/none.yaml b/qa/suites/rbd/cli_v1/pool/none.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/pool/none.yaml
diff --git a/qa/suites/rbd/cli_v1/pool/small-cache-pool.yaml b/qa/suites/rbd/cli_v1/pool/small-cache-pool.yaml
new file mode 100644
index 00000000..1b505657
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/pool/small-cache-pool.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NEAR_FULL\)
+ - \(CACHE_POOL_NO_HIT_SET\)
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add rbd cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay rbd cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 60
+ - sudo ceph osd pool set cache target_max_objects 250
diff --git a/qa/suites/rbd/cli_v1/supported-random-distro$ b/qa/suites/rbd/cli_v1/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rbd/cli_v1/workloads/.qa b/qa/suites/rbd/cli_v1/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/cli_v1/workloads/rbd_cli_generic.yaml b/qa/suites/rbd/cli_v1/workloads/rbd_cli_generic.yaml
new file mode 100644
index 00000000..be43b3e8
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/workloads/rbd_cli_generic.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/cli_generic.sh
diff --git a/qa/suites/rbd/cli_v1/workloads/rbd_cli_import_export.yaml b/qa/suites/rbd/cli_v1/workloads/rbd_cli_import_export.yaml
new file mode 100644
index 00000000..b08f2612
--- /dev/null
+++ b/qa/suites/rbd/cli_v1/workloads/rbd_cli_import_export.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/import_export.sh
diff --git a/qa/suites/rbd/librbd/% b/qa/suites/rbd/librbd/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/librbd/%
diff --git a/qa/suites/rbd/librbd/.qa b/qa/suites/rbd/librbd/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/librbd/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/librbd/cache/.qa b/qa/suites/rbd/librbd/cache/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/librbd/cache/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/librbd/cache/none.yaml b/qa/suites/rbd/librbd/cache/none.yaml
new file mode 100644
index 00000000..42fd9c95
--- /dev/null
+++ b/qa/suites/rbd/librbd/cache/none.yaml
@@ -0,0 +1,6 @@
+tasks:
+- install:
+- ceph:
+ conf:
+ client:
+ rbd cache: false
diff --git a/qa/suites/rbd/librbd/cache/writeback.yaml b/qa/suites/rbd/librbd/cache/writeback.yaml
new file mode 100644
index 00000000..86fe06af
--- /dev/null
+++ b/qa/suites/rbd/librbd/cache/writeback.yaml
@@ -0,0 +1,6 @@
+tasks:
+- install:
+- ceph:
+ conf:
+ client:
+ rbd cache: true
diff --git a/qa/suites/rbd/librbd/cache/writethrough.yaml b/qa/suites/rbd/librbd/cache/writethrough.yaml
new file mode 100644
index 00000000..6dc29e16
--- /dev/null
+++ b/qa/suites/rbd/librbd/cache/writethrough.yaml
@@ -0,0 +1,7 @@
+tasks:
+- install:
+- ceph:
+ conf:
+ client:
+ rbd cache: true
+ rbd cache max dirty: 0
diff --git a/qa/suites/rbd/librbd/clusters/+ b/qa/suites/rbd/librbd/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/librbd/clusters/+
diff --git a/qa/suites/rbd/librbd/clusters/.qa b/qa/suites/rbd/librbd/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/librbd/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/librbd/clusters/fixed-3.yaml b/qa/suites/rbd/librbd/clusters/fixed-3.yaml
new file mode 120000
index 00000000..f75a848b
--- /dev/null
+++ b/qa/suites/rbd/librbd/clusters/fixed-3.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-3.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/librbd/clusters/openstack.yaml b/qa/suites/rbd/librbd/clusters/openstack.yaml
new file mode 100644
index 00000000..b0f3b9b4
--- /dev/null
+++ b/qa/suites/rbd/librbd/clusters/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 30 # GB
diff --git a/qa/suites/rbd/librbd/config/.qa b/qa/suites/rbd/librbd/config/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/librbd/config/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/librbd/config/copy-on-read.yaml b/qa/suites/rbd/librbd/config/copy-on-read.yaml
new file mode 100644
index 00000000..ce99e7ec
--- /dev/null
+++ b/qa/suites/rbd/librbd/config/copy-on-read.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd clone copy on read: true
diff --git a/qa/suites/rbd/librbd/config/none.yaml b/qa/suites/rbd/librbd/config/none.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/librbd/config/none.yaml
diff --git a/qa/suites/rbd/librbd/config/permit-partial-discard.yaml b/qa/suites/rbd/librbd/config/permit-partial-discard.yaml
new file mode 100644
index 00000000..a9929469
--- /dev/null
+++ b/qa/suites/rbd/librbd/config/permit-partial-discard.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd skip partial discard: false
diff --git a/qa/suites/rbd/librbd/msgr-failures/.qa b/qa/suites/rbd/librbd/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/librbd/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/librbd/msgr-failures/few.yaml b/qa/suites/rbd/librbd/msgr-failures/few.yaml
new file mode 100644
index 00000000..55b6df53
--- /dev/null
+++ b/qa/suites/rbd/librbd/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - but it is still running
diff --git a/qa/suites/rbd/librbd/objectstore b/qa/suites/rbd/librbd/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rbd/librbd/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rbd/librbd/pool/.qa b/qa/suites/rbd/librbd/pool/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/librbd/pool/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/librbd/pool/ec-data-pool.yaml b/qa/suites/rbd/librbd/pool/ec-data-pool.yaml
new file mode 100644
index 00000000..f39a5bb4
--- /dev/null
+++ b/qa/suites/rbd/librbd/pool/ec-data-pool.yaml
@@ -0,0 +1,24 @@
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd erasure-code-profile set teuthologyprofile crush-failure-domain=osd m=1 k=2
+ - sudo ceph osd pool create datapool 4 4 erasure teuthologyprofile
+ - sudo ceph osd pool set datapool allow_ec_overwrites true
+ - rbd pool init datapool
+
+overrides:
+ thrashosds:
+ bdev_inject_crash: 2
+ bdev_inject_crash_probability: .5
+ ceph:
+ fs: xfs
+ conf:
+ client:
+ rbd default data pool: datapool
+ osd: # force bluestore since it's required for ec overwrites
+ osd objectstore: bluestore
+ bluestore block size: 96636764160
+ enable experimental unrecoverable data corrupting features: "*"
+ osd debug randomize hobject sort order: false
+# this doesn't work with failures bc the log writes are not atomic across the two backends
+# bluestore bluefs env mirror: true
diff --git a/qa/suites/rbd/librbd/pool/none.yaml b/qa/suites/rbd/librbd/pool/none.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/librbd/pool/none.yaml
diff --git a/qa/suites/rbd/librbd/pool/replicated-data-pool.yaml b/qa/suites/rbd/librbd/pool/replicated-data-pool.yaml
new file mode 100644
index 00000000..c5647dba
--- /dev/null
+++ b/qa/suites/rbd/librbd/pool/replicated-data-pool.yaml
@@ -0,0 +1,11 @@
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create datapool 4
+ - rbd pool init datapool
+
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default data pool: datapool
diff --git a/qa/suites/rbd/librbd/pool/small-cache-pool.yaml b/qa/suites/rbd/librbd/pool/small-cache-pool.yaml
new file mode 100644
index 00000000..1b505657
--- /dev/null
+++ b/qa/suites/rbd/librbd/pool/small-cache-pool.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NEAR_FULL\)
+ - \(CACHE_POOL_NO_HIT_SET\)
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add rbd cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay rbd cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 60
+ - sudo ceph osd pool set cache target_max_objects 250
diff --git a/qa/suites/rbd/librbd/supported-random-distro$ b/qa/suites/rbd/librbd/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rbd/librbd/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rbd/librbd/workloads/.qa b/qa/suites/rbd/librbd/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/librbd/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/librbd/workloads/c_api_tests.yaml b/qa/suites/rbd/librbd/workloads/c_api_tests.yaml
new file mode 100644
index 00000000..04af9c85
--- /dev/null
+++ b/qa/suites/rbd/librbd/workloads/c_api_tests.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ env:
+ RBD_FEATURES: "1"
diff --git a/qa/suites/rbd/librbd/workloads/c_api_tests_with_defaults.yaml b/qa/suites/rbd/librbd/workloads/c_api_tests_with_defaults.yaml
new file mode 100644
index 00000000..6ae7f462
--- /dev/null
+++ b/qa/suites/rbd/librbd/workloads/c_api_tests_with_defaults.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ env:
+ RBD_FEATURES: "61"
diff --git a/qa/suites/rbd/librbd/workloads/c_api_tests_with_journaling.yaml b/qa/suites/rbd/librbd/workloads/c_api_tests_with_journaling.yaml
new file mode 100644
index 00000000..578115ee
--- /dev/null
+++ b/qa/suites/rbd/librbd/workloads/c_api_tests_with_journaling.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ env:
+ RBD_FEATURES: "125"
diff --git a/qa/suites/rbd/librbd/workloads/fsx.yaml b/qa/suites/rbd/librbd/workloads/fsx.yaml
new file mode 100644
index 00000000..6d8cd5f1
--- /dev/null
+++ b/qa/suites/rbd/librbd/workloads/fsx.yaml
@@ -0,0 +1,4 @@
+tasks:
+- rbd_fsx:
+ clients: [client.0]
+ ops: 20000
diff --git a/qa/suites/rbd/librbd/workloads/python_api_tests.yaml b/qa/suites/rbd/librbd/workloads/python_api_tests.yaml
new file mode 100644
index 00000000..a7b3ce7d
--- /dev/null
+++ b/qa/suites/rbd/librbd/workloads/python_api_tests.yaml
@@ -0,0 +1,7 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
+ env:
+ RBD_FEATURES: "1"
diff --git a/qa/suites/rbd/librbd/workloads/python_api_tests_with_defaults.yaml b/qa/suites/rbd/librbd/workloads/python_api_tests_with_defaults.yaml
new file mode 100644
index 00000000..40b2312f
--- /dev/null
+++ b/qa/suites/rbd/librbd/workloads/python_api_tests_with_defaults.yaml
@@ -0,0 +1,7 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
+ env:
+ RBD_FEATURES: "61"
diff --git a/qa/suites/rbd/librbd/workloads/python_api_tests_with_journaling.yaml b/qa/suites/rbd/librbd/workloads/python_api_tests_with_journaling.yaml
new file mode 100644
index 00000000..d0e905ff
--- /dev/null
+++ b/qa/suites/rbd/librbd/workloads/python_api_tests_with_journaling.yaml
@@ -0,0 +1,7 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
+ env:
+ RBD_FEATURES: "125"
diff --git a/qa/suites/rbd/librbd/workloads/rbd_fio.yaml b/qa/suites/rbd/librbd/workloads/rbd_fio.yaml
new file mode 100644
index 00000000..ff788c6a
--- /dev/null
+++ b/qa/suites/rbd/librbd/workloads/rbd_fio.yaml
@@ -0,0 +1,10 @@
+tasks:
+- rbd_fio:
+ client.0:
+ fio-io-size: 80%
+ formats: [2]
+ features: [[layering],[layering,exclusive-lock,object-map]]
+ io-engine: rbd
+ test-clone-io: 1
+ rw: randrw
+ runtime: 900
diff --git a/qa/suites/rbd/maintenance/% b/qa/suites/rbd/maintenance/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/maintenance/%
diff --git a/qa/suites/rbd/maintenance/.qa b/qa/suites/rbd/maintenance/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/maintenance/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/maintenance/base/.qa b/qa/suites/rbd/maintenance/base/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/maintenance/base/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/maintenance/base/install.yaml b/qa/suites/rbd/maintenance/base/install.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/rbd/maintenance/base/install.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/rbd/maintenance/clusters/+ b/qa/suites/rbd/maintenance/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/maintenance/clusters/+
diff --git a/qa/suites/rbd/maintenance/clusters/.qa b/qa/suites/rbd/maintenance/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/maintenance/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/maintenance/clusters/fixed-3.yaml b/qa/suites/rbd/maintenance/clusters/fixed-3.yaml
new file mode 120000
index 00000000..f75a848b
--- /dev/null
+++ b/qa/suites/rbd/maintenance/clusters/fixed-3.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-3.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/maintenance/clusters/openstack.yaml b/qa/suites/rbd/maintenance/clusters/openstack.yaml
new file mode 120000
index 00000000..3e5028f9
--- /dev/null
+++ b/qa/suites/rbd/maintenance/clusters/openstack.yaml
@@ -0,0 +1 @@
+../../qemu/clusters/openstack.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/maintenance/objectstore b/qa/suites/rbd/maintenance/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rbd/maintenance/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rbd/maintenance/qemu/.qa b/qa/suites/rbd/maintenance/qemu/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/maintenance/qemu/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/maintenance/qemu/xfstests.yaml b/qa/suites/rbd/maintenance/qemu/xfstests.yaml
new file mode 100644
index 00000000..135103b3
--- /dev/null
+++ b/qa/suites/rbd/maintenance/qemu/xfstests.yaml
@@ -0,0 +1,14 @@
+tasks:
+- parallel:
+ - io_workload
+ - op_workload
+io_workload:
+ sequential:
+ - qemu:
+ client.0:
+ clone: true
+ type: block
+ disks: 3
+ time_wait: 120
+ test: qa/run_xfstests_qemu.sh
+exclude_arch: armv7l
diff --git a/qa/suites/rbd/maintenance/supported-random-distro$ b/qa/suites/rbd/maintenance/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rbd/maintenance/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rbd/maintenance/workloads/.qa b/qa/suites/rbd/maintenance/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/maintenance/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/maintenance/workloads/dynamic_features.yaml b/qa/suites/rbd/maintenance/workloads/dynamic_features.yaml
new file mode 100644
index 00000000..d7e1c1ed
--- /dev/null
+++ b/qa/suites/rbd/maintenance/workloads/dynamic_features.yaml
@@ -0,0 +1,8 @@
+op_workload:
+ sequential:
+ - workunit:
+ clients:
+ client.0:
+ - rbd/qemu_dynamic_features.sh
+ env:
+ IMAGE_NAME: client.0.1-clone
diff --git a/qa/suites/rbd/maintenance/workloads/dynamic_features_no_cache.yaml b/qa/suites/rbd/maintenance/workloads/dynamic_features_no_cache.yaml
new file mode 100644
index 00000000..dc8671b7
--- /dev/null
+++ b/qa/suites/rbd/maintenance/workloads/dynamic_features_no_cache.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd cache: false
+op_workload:
+ sequential:
+ - workunit:
+ clients:
+ client.0:
+ - rbd/qemu_dynamic_features.sh
+ env:
+ IMAGE_NAME: client.0.1-clone
diff --git a/qa/suites/rbd/maintenance/workloads/rebuild_object_map.yaml b/qa/suites/rbd/maintenance/workloads/rebuild_object_map.yaml
new file mode 100644
index 00000000..308158f6
--- /dev/null
+++ b/qa/suites/rbd/maintenance/workloads/rebuild_object_map.yaml
@@ -0,0 +1,8 @@
+op_workload:
+ sequential:
+ - workunit:
+ clients:
+ client.0:
+ - rbd/qemu_rebuild_object_map.sh
+ env:
+ IMAGE_NAME: client.0.1-clone
diff --git a/qa/suites/rbd/mirror-thrash/% b/qa/suites/rbd/mirror-thrash/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/%
diff --git a/qa/suites/rbd/mirror-thrash/.qa b/qa/suites/rbd/mirror-thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/mirror-thrash/base/.qa b/qa/suites/rbd/mirror-thrash/base/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/base/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/mirror-thrash/base/install.yaml b/qa/suites/rbd/mirror-thrash/base/install.yaml
new file mode 100644
index 00000000..365c3a8c
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/base/install.yaml
@@ -0,0 +1,9 @@
+meta:
+- desc: run two ceph clusters and install rbd-mirror
+tasks:
+- install:
+ extra_packages: [rbd-mirror]
+- ceph:
+ cluster: cluster1
+- ceph:
+ cluster: cluster2
diff --git a/qa/suites/rbd/mirror-thrash/cluster/+ b/qa/suites/rbd/mirror-thrash/cluster/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/cluster/+
diff --git a/qa/suites/rbd/mirror-thrash/cluster/.qa b/qa/suites/rbd/mirror-thrash/cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/mirror-thrash/cluster/2-node.yaml b/qa/suites/rbd/mirror-thrash/cluster/2-node.yaml
new file mode 100644
index 00000000..74f9fb3c
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/cluster/2-node.yaml
@@ -0,0 +1,31 @@
+meta:
+- desc: 2 ceph clusters with 1 mon and 3 osds each
+roles:
+- - cluster1.mon.a
+ - cluster1.mgr.x
+ - cluster2.mgr.x
+ - cluster1.osd.0
+ - cluster1.osd.1
+ - cluster1.osd.2
+ - cluster1.client.0
+ - cluster2.client.0
+- - cluster2.mon.a
+ - cluster2.osd.0
+ - cluster2.osd.1
+ - cluster2.osd.2
+ - cluster1.client.mirror
+ - cluster1.client.mirror.0
+ - cluster1.client.mirror.1
+ - cluster1.client.mirror.2
+ - cluster1.client.mirror.3
+ - cluster1.client.mirror.4
+ - cluster1.client.mirror.5
+ - cluster1.client.mirror.6
+ - cluster2.client.mirror
+ - cluster2.client.mirror.0
+ - cluster2.client.mirror.1
+ - cluster2.client.mirror.2
+ - cluster2.client.mirror.3
+ - cluster2.client.mirror.4
+ - cluster2.client.mirror.5
+ - cluster2.client.mirror.6
diff --git a/qa/suites/rbd/mirror-thrash/cluster/openstack.yaml b/qa/suites/rbd/mirror-thrash/cluster/openstack.yaml
new file mode 100644
index 00000000..f4d1349b
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/cluster/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 30 # GB
diff --git a/qa/suites/rbd/mirror-thrash/msgr-failures b/qa/suites/rbd/mirror-thrash/msgr-failures
new file mode 120000
index 00000000..db59eb46
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/msgr-failures
@@ -0,0 +1 @@
+../basic/msgr-failures \ No newline at end of file
diff --git a/qa/suites/rbd/mirror-thrash/objectstore b/qa/suites/rbd/mirror-thrash/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rbd/mirror-thrash/policy/.qa b/qa/suites/rbd/mirror-thrash/policy/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/policy/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/mirror-thrash/policy/none.yaml b/qa/suites/rbd/mirror-thrash/policy/none.yaml
new file mode 100644
index 00000000..e0a7c118
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/policy/none.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd mirror image policy type: none
diff --git a/qa/suites/rbd/mirror-thrash/policy/simple.yaml b/qa/suites/rbd/mirror-thrash/policy/simple.yaml
new file mode 100644
index 00000000..ee3082d3
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/policy/simple.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd mirror image policy type: simple
diff --git a/qa/suites/rbd/mirror-thrash/rbd-mirror/.qa b/qa/suites/rbd/mirror-thrash/rbd-mirror/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/rbd-mirror/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/mirror-thrash/rbd-mirror/four-per-cluster.yaml b/qa/suites/rbd/mirror-thrash/rbd-mirror/four-per-cluster.yaml
new file mode 100644
index 00000000..70df34e4
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/rbd-mirror/four-per-cluster.yaml
@@ -0,0 +1,31 @@
+meta:
+- desc: run four rbd-mirror daemons per cluster
+tasks:
+- rbd-mirror:
+ client: cluster1.client.mirror.0
+ thrash: True
+- rbd-mirror:
+ client: cluster1.client.mirror.1
+ thrash: True
+- rbd-mirror:
+ client: cluster1.client.mirror.2
+ thrash: True
+- rbd-mirror:
+ client: cluster1.client.mirror.3
+ thrash: True
+- rbd-mirror:
+ client: cluster2.client.mirror.0
+ thrash: True
+- rbd-mirror:
+ client: cluster2.client.mirror.1
+ thrash: True
+- rbd-mirror:
+ client: cluster2.client.mirror.2
+ thrash: True
+- rbd-mirror:
+ client: cluster2.client.mirror.3
+ thrash: True
+- rbd-mirror-thrash:
+ cluster: cluster1
+- rbd-mirror-thrash:
+ cluster: cluster2
diff --git a/qa/suites/rbd/mirror-thrash/supported-random-distro$ b/qa/suites/rbd/mirror-thrash/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rbd/mirror-thrash/users/.qa b/qa/suites/rbd/mirror-thrash/users/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/users/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/mirror-thrash/users/mirror.yaml b/qa/suites/rbd/mirror-thrash/users/mirror.yaml
new file mode 100644
index 00000000..8de3eb2b
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/users/mirror.yaml
@@ -0,0 +1,23 @@
+meta:
+- desc: configure the permissions for client.mirror
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default features: 125
+ debug rbd: 20
+ debug rbd_mirror: 15
+ log to stderr: false
+ # override to make these names predictable
+ client.mirror.0:
+ admin socket: /var/run/ceph/rbd-mirror.$cluster-$name.asok
+ pid file: /var/run/ceph/rbd-mirror.$cluster-$name.pid
+ client.mirror.1:
+ admin socket: /var/run/ceph/rbd-mirror.$cluster-$name.asok
+ pid file: /var/run/ceph/rbd-mirror.$cluster-$name.pid
+ client.mirror.2:
+ admin socket: /var/run/ceph/rbd-mirror.$cluster-$name.asok
+ pid file: /var/run/ceph/rbd-mirror.$cluster-$name.pid
+ client.mirror.3:
+ admin socket: /var/run/ceph/rbd-mirror.$cluster-$name.asok
+ pid file: /var/run/ceph/rbd-mirror.$cluster-$name.pid
diff --git a/qa/suites/rbd/mirror-thrash/workloads/.qa b/qa/suites/rbd/mirror-thrash/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/mirror-thrash/workloads/rbd-mirror-fsx-workunit.yaml b/qa/suites/rbd/mirror-thrash/workloads/rbd-mirror-fsx-workunit.yaml
new file mode 100644
index 00000000..d2db0f52
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/workloads/rbd-mirror-fsx-workunit.yaml
@@ -0,0 +1,33 @@
+meta:
+- desc: run multiple FSX workloads to simulate cluster load and then verify
+ that the images were replicated
+tasks:
+- workunit:
+ clients:
+ cluster1.client.mirror: [rbd/rbd_mirror_fsx_prepare.sh]
+ env:
+ # override workunit setting of CEPH_ARGS='--cluster'
+ CEPH_ARGS: ''
+ RBD_MIRROR_NOCLEANUP: '1'
+ RBD_MIRROR_USE_EXISTING_CLUSTER: '1'
+ RBD_MIRROR_USE_RBD_MIRROR: '1'
+- rbd_fsx:
+ clients:
+ - cluster1.client.mirror.0
+ - cluster1.client.mirror.1
+ - cluster1.client.mirror.2
+ - cluster1.client.mirror.3
+ - cluster1.client.mirror.4
+ - cluster1.client.mirror.5
+ ops: 6000
+ keep_images: true
+ pool_name: mirror
+- workunit:
+ clients:
+ cluster1.client.mirror: [rbd/rbd_mirror_fsx_compare.sh]
+ env:
+ # override workunit setting of CEPH_ARGS='--cluster'
+ CEPH_ARGS: ''
+ RBD_MIRROR_USE_EXISTING_CLUSTER: '1'
+ RBD_MIRROR_USE_RBD_MIRROR: '1'
+ timeout: 6h
diff --git a/qa/suites/rbd/mirror-thrash/workloads/rbd-mirror-stress-workunit.yaml b/qa/suites/rbd/mirror-thrash/workloads/rbd-mirror-stress-workunit.yaml
new file mode 100644
index 00000000..62bda881
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/workloads/rbd-mirror-stress-workunit.yaml
@@ -0,0 +1,13 @@
+meta:
+- desc: run the rbd_mirror_stress.sh workunit to test the rbd-mirror daemon
+tasks:
+- workunit:
+ clients:
+ cluster1.client.mirror: [rbd/rbd_mirror_stress.sh]
+ env:
+ # override workunit setting of CEPH_ARGS='--cluster'
+ CEPH_ARGS: ''
+ RBD_MIRROR_INSTANCES: '4'
+ RBD_MIRROR_USE_EXISTING_CLUSTER: '1'
+ RBD_MIRROR_USE_RBD_MIRROR: '1'
+ timeout: 6h
diff --git a/qa/suites/rbd/mirror-thrash/workloads/rbd-mirror-workunit.yaml b/qa/suites/rbd/mirror-thrash/workloads/rbd-mirror-workunit.yaml
new file mode 100644
index 00000000..349d3fc8
--- /dev/null
+++ b/qa/suites/rbd/mirror-thrash/workloads/rbd-mirror-workunit.yaml
@@ -0,0 +1,12 @@
+meta:
+- desc: run the rbd_mirror.sh workunit to test the rbd-mirror daemon
+tasks:
+- workunit:
+ clients:
+ cluster1.client.mirror: [rbd/rbd_mirror.sh]
+ env:
+ # override workunit setting of CEPH_ARGS='--cluster'
+ CEPH_ARGS: ''
+ RBD_MIRROR_INSTANCES: '4'
+ RBD_MIRROR_USE_EXISTING_CLUSTER: '1'
+ RBD_MIRROR_USE_RBD_MIRROR: '1'
diff --git a/qa/suites/rbd/mirror/% b/qa/suites/rbd/mirror/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/mirror/%
diff --git a/qa/suites/rbd/mirror/.qa b/qa/suites/rbd/mirror/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/mirror/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/mirror/base b/qa/suites/rbd/mirror/base
new file mode 120000
index 00000000..8d9546e2
--- /dev/null
+++ b/qa/suites/rbd/mirror/base
@@ -0,0 +1 @@
+../mirror-thrash/base \ No newline at end of file
diff --git a/qa/suites/rbd/mirror/cluster b/qa/suites/rbd/mirror/cluster
new file mode 120000
index 00000000..3fc87a15
--- /dev/null
+++ b/qa/suites/rbd/mirror/cluster
@@ -0,0 +1 @@
+../mirror-thrash/cluster \ No newline at end of file
diff --git a/qa/suites/rbd/mirror/msgr-failures b/qa/suites/rbd/mirror/msgr-failures
new file mode 120000
index 00000000..728aeab3
--- /dev/null
+++ b/qa/suites/rbd/mirror/msgr-failures
@@ -0,0 +1 @@
+../mirror-thrash/msgr-failures \ No newline at end of file
diff --git a/qa/suites/rbd/mirror/objectstore b/qa/suites/rbd/mirror/objectstore
new file mode 120000
index 00000000..d751ff12
--- /dev/null
+++ b/qa/suites/rbd/mirror/objectstore
@@ -0,0 +1 @@
+../mirror-thrash/objectstore \ No newline at end of file
diff --git a/qa/suites/rbd/mirror/supported-random-distro$ b/qa/suites/rbd/mirror/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rbd/mirror/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rbd/mirror/users b/qa/suites/rbd/mirror/users
new file mode 120000
index 00000000..8d9d0d2c
--- /dev/null
+++ b/qa/suites/rbd/mirror/users
@@ -0,0 +1 @@
+../mirror-thrash/users \ No newline at end of file
diff --git a/qa/suites/rbd/mirror/workloads/.qa b/qa/suites/rbd/mirror/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/mirror/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/mirror/workloads/rbd-mirror-bootstrap-workunit.yaml b/qa/suites/rbd/mirror/workloads/rbd-mirror-bootstrap-workunit.yaml
new file mode 100644
index 00000000..585f5829
--- /dev/null
+++ b/qa/suites/rbd/mirror/workloads/rbd-mirror-bootstrap-workunit.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: run the rbd_mirror_bootstrap.sh workunit to test the rbd-mirror daemon
+tasks:
+- workunit:
+ clients:
+ cluster1.client.mirror: [rbd/rbd_mirror_bootstrap.sh]
+ env:
+ # override workunit setting of CEPH_ARGS='--cluster'
+ CEPH_ARGS: ''
+ RBD_MIRROR_INSTANCES: '1'
+ RBD_MIRROR_USE_EXISTING_CLUSTER: '1'
diff --git a/qa/suites/rbd/mirror/workloads/rbd-mirror-ha-workunit.yaml b/qa/suites/rbd/mirror/workloads/rbd-mirror-ha-workunit.yaml
new file mode 100644
index 00000000..7aa8d548
--- /dev/null
+++ b/qa/suites/rbd/mirror/workloads/rbd-mirror-ha-workunit.yaml
@@ -0,0 +1,26 @@
+meta:
+- desc: run the rbd_mirror_ha.sh workunit to test the rbd-mirror daemon
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd mirror image policy type: none
+ # override to make these names predictable
+ client.mirror.4:
+ admin socket: /var/run/ceph/rbd-mirror.$cluster-$name.asok
+ pid file: /var/run/ceph/rbd-mirror.$cluster-$name.pid
+ client.mirror.5:
+ admin socket: /var/run/ceph/rbd-mirror.$cluster-$name.asok
+ pid file: /var/run/ceph/rbd-mirror.$cluster-$name.pid
+ client.mirror.6:
+ admin socket: /var/run/ceph/rbd-mirror.$cluster-$name.asok
+ pid file: /var/run/ceph/rbd-mirror.$cluster-$name.pid
+tasks:
+- workunit:
+ clients:
+ cluster1.client.mirror: [rbd/rbd_mirror_ha.sh]
+ env:
+ # override workunit setting of CEPH_ARGS='--cluster'
+ CEPH_ARGS: ''
+ RBD_MIRROR_USE_EXISTING_CLUSTER: '1'
+ timeout: 6h
diff --git a/qa/suites/rbd/mirror/workloads/rbd-mirror-workunit-config-key.yaml b/qa/suites/rbd/mirror/workloads/rbd-mirror-workunit-config-key.yaml
new file mode 100644
index 00000000..0c8c2180
--- /dev/null
+++ b/qa/suites/rbd/mirror/workloads/rbd-mirror-workunit-config-key.yaml
@@ -0,0 +1,12 @@
+meta:
+- desc: run the rbd_mirror.sh workunit to test the rbd-mirror daemon
+tasks:
+- workunit:
+ clients:
+ cluster1.client.mirror: [rbd/rbd_mirror.sh]
+ env:
+ # override workunit setting of CEPH_ARGS='--cluster'
+ CEPH_ARGS: ''
+ RBD_MIRROR_INSTANCES: '4'
+ RBD_MIRROR_USE_EXISTING_CLUSTER: '1'
+ RBD_MIRROR_CONFIG_KEY: '1'
diff --git a/qa/suites/rbd/mirror/workloads/rbd-mirror-workunit-policy-none.yaml b/qa/suites/rbd/mirror/workloads/rbd-mirror-workunit-policy-none.yaml
new file mode 100644
index 00000000..eff20a9e
--- /dev/null
+++ b/qa/suites/rbd/mirror/workloads/rbd-mirror-workunit-policy-none.yaml
@@ -0,0 +1,16 @@
+meta:
+- desc: run the rbd_mirror.sh workunit to test the rbd-mirror daemon
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd mirror image policy type: none
+tasks:
+- workunit:
+ clients:
+ cluster1.client.mirror: [rbd/rbd_mirror.sh]
+ env:
+ # override workunit setting of CEPH_ARGS='--cluster'
+ CEPH_ARGS: ''
+ RBD_MIRROR_INSTANCES: '4'
+ RBD_MIRROR_USE_EXISTING_CLUSTER: '1'
diff --git a/qa/suites/rbd/mirror/workloads/rbd-mirror-workunit-policy-simple.yaml b/qa/suites/rbd/mirror/workloads/rbd-mirror-workunit-policy-simple.yaml
new file mode 100644
index 00000000..85814217
--- /dev/null
+++ b/qa/suites/rbd/mirror/workloads/rbd-mirror-workunit-policy-simple.yaml
@@ -0,0 +1,16 @@
+meta:
+- desc: run the rbd_mirror.sh workunit to test the rbd-mirror daemon
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd mirror image policy type: simple
+tasks:
+- workunit:
+ clients:
+ cluster1.client.mirror: [rbd/rbd_mirror.sh]
+ env:
+ # override workunit setting of CEPH_ARGS='--cluster'
+ CEPH_ARGS: ''
+ RBD_MIRROR_INSTANCES: '4'
+ RBD_MIRROR_USE_EXISTING_CLUSTER: '1'
diff --git a/qa/suites/rbd/nbd/% b/qa/suites/rbd/nbd/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/nbd/%
diff --git a/qa/suites/rbd/nbd/.qa b/qa/suites/rbd/nbd/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/nbd/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/nbd/base b/qa/suites/rbd/nbd/base
new file mode 120000
index 00000000..fd10a859
--- /dev/null
+++ b/qa/suites/rbd/nbd/base
@@ -0,0 +1 @@
+../thrash/base \ No newline at end of file
diff --git a/qa/suites/rbd/nbd/cluster/+ b/qa/suites/rbd/nbd/cluster/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/nbd/cluster/+
diff --git a/qa/suites/rbd/nbd/cluster/.qa b/qa/suites/rbd/nbd/cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/nbd/cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/nbd/cluster/fixed-3.yaml b/qa/suites/rbd/nbd/cluster/fixed-3.yaml
new file mode 100644
index 00000000..18258915
--- /dev/null
+++ b/qa/suites/rbd/nbd/cluster/fixed-3.yaml
@@ -0,0 +1,4 @@
+roles:
+- [mon.a, mon.c, osd.0, osd.1, osd.2]
+- [mon.b, mgr.x, osd.3, osd.4, osd.5]
+- [client.0]
diff --git a/qa/suites/rbd/nbd/cluster/openstack.yaml b/qa/suites/rbd/nbd/cluster/openstack.yaml
new file mode 120000
index 00000000..48becbb8
--- /dev/null
+++ b/qa/suites/rbd/nbd/cluster/openstack.yaml
@@ -0,0 +1 @@
+../../thrash/clusters/openstack.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/nbd/msgr-failures b/qa/suites/rbd/nbd/msgr-failures
new file mode 120000
index 00000000..03689aa4
--- /dev/null
+++ b/qa/suites/rbd/nbd/msgr-failures
@@ -0,0 +1 @@
+../thrash/msgr-failures \ No newline at end of file
diff --git a/qa/suites/rbd/nbd/objectstore b/qa/suites/rbd/nbd/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rbd/nbd/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rbd/nbd/thrashers b/qa/suites/rbd/nbd/thrashers
new file mode 120000
index 00000000..f461dadc
--- /dev/null
+++ b/qa/suites/rbd/nbd/thrashers
@@ -0,0 +1 @@
+../thrash/thrashers \ No newline at end of file
diff --git a/qa/suites/rbd/nbd/thrashosds-health.yaml b/qa/suites/rbd/nbd/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/rbd/nbd/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/nbd/workloads/.qa b/qa/suites/rbd/nbd/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/nbd/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/nbd/workloads/rbd_fsx_nbd.yaml b/qa/suites/rbd/nbd/workloads/rbd_fsx_nbd.yaml
new file mode 100644
index 00000000..b6e9d5b1
--- /dev/null
+++ b/qa/suites/rbd/nbd/workloads/rbd_fsx_nbd.yaml
@@ -0,0 +1,15 @@
+os_type: ubuntu
+overrides:
+ install:
+ ceph:
+ extra_packages: [rbd-nbd]
+tasks:
+- rbd_fsx:
+ clients: [client.0]
+ ops: 6000
+ nbd: True
+ holebdy: 512
+ punch_holes: true
+ readbdy: 512
+ truncbdy: 512
+ writebdy: 512
diff --git a/qa/suites/rbd/nbd/workloads/rbd_nbd.yaml b/qa/suites/rbd/nbd/workloads/rbd_nbd.yaml
new file mode 100644
index 00000000..897d07ce
--- /dev/null
+++ b/qa/suites/rbd/nbd/workloads/rbd_nbd.yaml
@@ -0,0 +1,10 @@
+os_type: ubuntu
+overrides:
+ install:
+ ceph:
+ extra_packages: [rbd-nbd]
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/rbd-nbd.sh
diff --git a/qa/suites/rbd/qemu/% b/qa/suites/rbd/qemu/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/qemu/%
diff --git a/qa/suites/rbd/qemu/.qa b/qa/suites/rbd/qemu/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/qemu/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/qemu/cache/.qa b/qa/suites/rbd/qemu/cache/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/qemu/cache/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/qemu/cache/none.yaml b/qa/suites/rbd/qemu/cache/none.yaml
new file mode 100644
index 00000000..42fd9c95
--- /dev/null
+++ b/qa/suites/rbd/qemu/cache/none.yaml
@@ -0,0 +1,6 @@
+tasks:
+- install:
+- ceph:
+ conf:
+ client:
+ rbd cache: false
diff --git a/qa/suites/rbd/qemu/cache/writeback.yaml b/qa/suites/rbd/qemu/cache/writeback.yaml
new file mode 100644
index 00000000..86fe06af
--- /dev/null
+++ b/qa/suites/rbd/qemu/cache/writeback.yaml
@@ -0,0 +1,6 @@
+tasks:
+- install:
+- ceph:
+ conf:
+ client:
+ rbd cache: true
diff --git a/qa/suites/rbd/qemu/cache/writethrough.yaml b/qa/suites/rbd/qemu/cache/writethrough.yaml
new file mode 100644
index 00000000..6dc29e16
--- /dev/null
+++ b/qa/suites/rbd/qemu/cache/writethrough.yaml
@@ -0,0 +1,7 @@
+tasks:
+- install:
+- ceph:
+ conf:
+ client:
+ rbd cache: true
+ rbd cache max dirty: 0
diff --git a/qa/suites/rbd/qemu/clusters/+ b/qa/suites/rbd/qemu/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/qemu/clusters/+
diff --git a/qa/suites/rbd/qemu/clusters/.qa b/qa/suites/rbd/qemu/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/qemu/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/qemu/clusters/fixed-3.yaml b/qa/suites/rbd/qemu/clusters/fixed-3.yaml
new file mode 120000
index 00000000..f75a848b
--- /dev/null
+++ b/qa/suites/rbd/qemu/clusters/fixed-3.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-3.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/qemu/clusters/openstack.yaml b/qa/suites/rbd/qemu/clusters/openstack.yaml
new file mode 100644
index 00000000..9c39c7e5
--- /dev/null
+++ b/qa/suites/rbd/qemu/clusters/openstack.yaml
@@ -0,0 +1,8 @@
+openstack:
+ - machine:
+ disk: 40 # GB
+ ram: 30000 # MB
+ cpus: 1
+ volumes: # attached to each instance
+ count: 4
+ size: 30 # GB
diff --git a/qa/suites/rbd/qemu/features/.qa b/qa/suites/rbd/qemu/features/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/qemu/features/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/qemu/features/defaults.yaml b/qa/suites/rbd/qemu/features/defaults.yaml
new file mode 100644
index 00000000..75afd68d
--- /dev/null
+++ b/qa/suites/rbd/qemu/features/defaults.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default features: 61
diff --git a/qa/suites/rbd/qemu/features/journaling.yaml b/qa/suites/rbd/qemu/features/journaling.yaml
new file mode 100644
index 00000000..6cea62a8
--- /dev/null
+++ b/qa/suites/rbd/qemu/features/journaling.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default features: 125
diff --git a/qa/suites/rbd/qemu/msgr-failures/.qa b/qa/suites/rbd/qemu/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/qemu/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/qemu/msgr-failures/few.yaml b/qa/suites/rbd/qemu/msgr-failures/few.yaml
new file mode 100644
index 00000000..9349b4f9
--- /dev/null
+++ b/qa/suites/rbd/qemu/msgr-failures/few.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - but it is still running
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rbd/qemu/objectstore b/qa/suites/rbd/qemu/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rbd/qemu/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rbd/qemu/pool/.qa b/qa/suites/rbd/qemu/pool/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/qemu/pool/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/qemu/pool/ec-cache-pool.yaml b/qa/suites/rbd/qemu/pool/ec-cache-pool.yaml
new file mode 100644
index 00000000..c75e6fd4
--- /dev/null
+++ b/qa/suites/rbd/qemu/pool/ec-cache-pool.yaml
@@ -0,0 +1,21 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NEAR_FULL\)
+ - \(CACHE_POOL_NO_HIT_SET\)
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd erasure-code-profile set teuthologyprofile crush-failure-domain=osd m=1 k=2
+ - sudo ceph osd pool delete rbd rbd --yes-i-really-really-mean-it
+ - sudo ceph osd pool create rbd 4 4 erasure teuthologyprofile
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add rbd cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay rbd cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 60
+ - sudo ceph osd pool set cache target_max_objects 250
+ - rbd pool init rbd
diff --git a/qa/suites/rbd/qemu/pool/ec-data-pool.yaml b/qa/suites/rbd/qemu/pool/ec-data-pool.yaml
new file mode 100644
index 00000000..f39a5bb4
--- /dev/null
+++ b/qa/suites/rbd/qemu/pool/ec-data-pool.yaml
@@ -0,0 +1,24 @@
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd erasure-code-profile set teuthologyprofile crush-failure-domain=osd m=1 k=2
+ - sudo ceph osd pool create datapool 4 4 erasure teuthologyprofile
+ - sudo ceph osd pool set datapool allow_ec_overwrites true
+ - rbd pool init datapool
+
+overrides:
+ thrashosds:
+ bdev_inject_crash: 2
+ bdev_inject_crash_probability: .5
+ ceph:
+ fs: xfs
+ conf:
+ client:
+ rbd default data pool: datapool
+ osd: # force bluestore since it's required for ec overwrites
+ osd objectstore: bluestore
+ bluestore block size: 96636764160
+ enable experimental unrecoverable data corrupting features: "*"
+ osd debug randomize hobject sort order: false
+# this doesn't work with failures bc the log writes are not atomic across the two backends
+# bluestore bluefs env mirror: true
diff --git a/qa/suites/rbd/qemu/pool/none.yaml b/qa/suites/rbd/qemu/pool/none.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/qemu/pool/none.yaml
diff --git a/qa/suites/rbd/qemu/pool/replicated-data-pool.yaml b/qa/suites/rbd/qemu/pool/replicated-data-pool.yaml
new file mode 100644
index 00000000..c5647dba
--- /dev/null
+++ b/qa/suites/rbd/qemu/pool/replicated-data-pool.yaml
@@ -0,0 +1,11 @@
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create datapool 4
+ - rbd pool init datapool
+
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default data pool: datapool
diff --git a/qa/suites/rbd/qemu/pool/small-cache-pool.yaml b/qa/suites/rbd/qemu/pool/small-cache-pool.yaml
new file mode 100644
index 00000000..1b505657
--- /dev/null
+++ b/qa/suites/rbd/qemu/pool/small-cache-pool.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NEAR_FULL\)
+ - \(CACHE_POOL_NO_HIT_SET\)
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add rbd cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay rbd cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 60
+ - sudo ceph osd pool set cache target_max_objects 250
diff --git a/qa/suites/rbd/qemu/supported-random-distro$ b/qa/suites/rbd/qemu/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rbd/qemu/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rbd/qemu/workloads/.qa b/qa/suites/rbd/qemu/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/qemu/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/qemu/workloads/qemu_bonnie.yaml b/qa/suites/rbd/qemu/workloads/qemu_bonnie.yaml
new file mode 100644
index 00000000..0ef9ebb6
--- /dev/null
+++ b/qa/suites/rbd/qemu/workloads/qemu_bonnie.yaml
@@ -0,0 +1,6 @@
+tasks:
+- qemu:
+ all:
+ clone: true
+ test: qa/workunits/suites/bonnie.sh
+exclude_arch: armv7l
diff --git a/qa/suites/rbd/qemu/workloads/qemu_fsstress.yaml b/qa/suites/rbd/qemu/workloads/qemu_fsstress.yaml
new file mode 100644
index 00000000..95f51480
--- /dev/null
+++ b/qa/suites/rbd/qemu/workloads/qemu_fsstress.yaml
@@ -0,0 +1,6 @@
+tasks:
+- qemu:
+ all:
+ clone: true
+ test: qa/workunits/suites/fsstress.sh
+exclude_arch: armv7l
diff --git a/qa/suites/rbd/qemu/workloads/qemu_iozone.yaml.disabled b/qa/suites/rbd/qemu/workloads/qemu_iozone.yaml.disabled
new file mode 100644
index 00000000..e159e208
--- /dev/null
+++ b/qa/suites/rbd/qemu/workloads/qemu_iozone.yaml.disabled
@@ -0,0 +1,6 @@
+tasks:
+- qemu:
+ all:
+ test: qa/workunits/suites/iozone.sh
+ image_size: 20480
+exclude_arch: armv7l
diff --git a/qa/suites/rbd/qemu/workloads/qemu_xfstests.yaml b/qa/suites/rbd/qemu/workloads/qemu_xfstests.yaml
new file mode 100644
index 00000000..198f798d
--- /dev/null
+++ b/qa/suites/rbd/qemu/workloads/qemu_xfstests.yaml
@@ -0,0 +1,8 @@
+tasks:
+- qemu:
+ all:
+ clone: true
+ type: block
+ disks: 3
+ test: qa/run_xfstests_qemu.sh
+exclude_arch: armv7l
diff --git a/qa/suites/rbd/singleton-bluestore/% b/qa/suites/rbd/singleton-bluestore/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/singleton-bluestore/%
diff --git a/qa/suites/rbd/singleton-bluestore/.qa b/qa/suites/rbd/singleton-bluestore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/singleton-bluestore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/singleton-bluestore/all/.qa b/qa/suites/rbd/singleton-bluestore/all/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/singleton-bluestore/all/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/singleton-bluestore/all/issue-20295.yaml b/qa/suites/rbd/singleton-bluestore/all/issue-20295.yaml
new file mode 100644
index 00000000..9af52e0e
--- /dev/null
+++ b/qa/suites/rbd/singleton-bluestore/all/issue-20295.yaml
@@ -0,0 +1,14 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, client.0]
+- [mon.b, mgr.y, osd.3, osd.4, osd.5]
+- [mon.c, mgr.z, osd.6, osd.7, osd.8]
+- [osd.9, osd.10, osd.11]
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - 'application not enabled'
+- workunit:
+ timeout: 30m
+ clients:
+ all: [rbd/issue-20295.sh]
diff --git a/qa/suites/rbd/singleton-bluestore/objectstore/.qa b/qa/suites/rbd/singleton-bluestore/objectstore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/singleton-bluestore/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/singleton-bluestore/objectstore/bluestore-bitmap.yaml b/qa/suites/rbd/singleton-bluestore/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/rbd/singleton-bluestore/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/singleton-bluestore/objectstore/bluestore-comp-snappy.yaml b/qa/suites/rbd/singleton-bluestore/objectstore/bluestore-comp-snappy.yaml
new file mode 120000
index 00000000..888caf55
--- /dev/null
+++ b/qa/suites/rbd/singleton-bluestore/objectstore/bluestore-comp-snappy.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-comp-snappy.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/singleton-bluestore/openstack.yaml b/qa/suites/rbd/singleton-bluestore/openstack.yaml
new file mode 100644
index 00000000..f4d1349b
--- /dev/null
+++ b/qa/suites/rbd/singleton-bluestore/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 30 # GB
diff --git a/qa/suites/rbd/singleton-bluestore/supported-random-distro$ b/qa/suites/rbd/singleton-bluestore/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rbd/singleton-bluestore/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rbd/singleton/% b/qa/suites/rbd/singleton/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/singleton/%
diff --git a/qa/suites/rbd/singleton/.qa b/qa/suites/rbd/singleton/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/singleton/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/singleton/all/.qa b/qa/suites/rbd/singleton/all/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/singleton/all/admin_socket.yaml b/qa/suites/rbd/singleton/all/admin_socket.yaml
new file mode 100644
index 00000000..22dbd8c0
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/admin_socket.yaml
@@ -0,0 +1,9 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- workunit:
+ clients:
+ all: [rbd/test_admin_socket.sh]
diff --git a/qa/suites/rbd/singleton/all/formatted-output.yaml b/qa/suites/rbd/singleton/all/formatted-output.yaml
new file mode 100644
index 00000000..7be94ef2
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/formatted-output.yaml
@@ -0,0 +1,10 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- cram:
+ clients:
+ client.0:
+ - src/test/cli-integration/rbd/formatted-output.t
diff --git a/qa/suites/rbd/singleton/all/merge_diff.yaml b/qa/suites/rbd/singleton/all/merge_diff.yaml
new file mode 100644
index 00000000..31b269d6
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/merge_diff.yaml
@@ -0,0 +1,9 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- workunit:
+ clients:
+ all: [rbd/merge_diff.sh]
diff --git a/qa/suites/rbd/singleton/all/permissions.yaml b/qa/suites/rbd/singleton/all/permissions.yaml
new file mode 100644
index 00000000..c00a5c9b
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/permissions.yaml
@@ -0,0 +1,9 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- workunit:
+ clients:
+ all: [rbd/permissions.sh]
diff --git a/qa/suites/rbd/singleton/all/qemu-iotests-no-cache.yaml b/qa/suites/rbd/singleton/all/qemu-iotests-no-cache.yaml
new file mode 100644
index 00000000..bfb20390
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/qemu-iotests-no-cache.yaml
@@ -0,0 +1,13 @@
+exclude_arch: armv7l
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ conf:
+ client:
+ rbd cache: false
+- workunit:
+ clients:
+ all: [rbd/qemu-iotests.sh]
diff --git a/qa/suites/rbd/singleton/all/qemu-iotests-writeback.yaml b/qa/suites/rbd/singleton/all/qemu-iotests-writeback.yaml
new file mode 100644
index 00000000..bf1b4bef
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/qemu-iotests-writeback.yaml
@@ -0,0 +1,13 @@
+exclude_arch: armv7l
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ conf:
+ client:
+ rbd cache: true
+- workunit:
+ clients:
+ all: [rbd/qemu-iotests.sh]
diff --git a/qa/suites/rbd/singleton/all/qemu-iotests-writethrough.yaml b/qa/suites/rbd/singleton/all/qemu-iotests-writethrough.yaml
new file mode 100644
index 00000000..908a6780
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/qemu-iotests-writethrough.yaml
@@ -0,0 +1,14 @@
+exclude_arch: armv7l
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ conf:
+ client:
+ rbd cache: true
+ rbd cache max dirty: 0
+- workunit:
+ clients:
+ all: [rbd/qemu-iotests.sh]
diff --git a/qa/suites/rbd/singleton/all/rbd-vs-unmanaged-snaps.yaml b/qa/suites/rbd/singleton/all/rbd-vs-unmanaged-snaps.yaml
new file mode 100644
index 00000000..f14bd743
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/rbd-vs-unmanaged-snaps.yaml
@@ -0,0 +1,14 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ conf:
+ client:
+ rbd validate pool: false
+- workunit:
+ clients:
+ all:
+ - mon/rbd_snaps_ops.sh
+
diff --git a/qa/suites/rbd/singleton/all/rbd_mirror.yaml b/qa/suites/rbd/singleton/all/rbd_mirror.yaml
new file mode 100644
index 00000000..0800cbfc
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/rbd_mirror.yaml
@@ -0,0 +1,13 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+- workunit:
+ clients:
+ all: [rbd/test_rbd_mirror.sh]
diff --git a/qa/suites/rbd/singleton/all/rbd_tasks.yaml b/qa/suites/rbd/singleton/all/rbd_tasks.yaml
new file mode 100644
index 00000000..b920cfc7
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/rbd_tasks.yaml
@@ -0,0 +1,13 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+- workunit:
+ clients:
+ all: [rbd/test_rbd_tasks.sh]
diff --git a/qa/suites/rbd/singleton/all/rbdmap_RBDMAPFILE.yaml b/qa/suites/rbd/singleton/all/rbdmap_RBDMAPFILE.yaml
new file mode 100644
index 00000000..0053e66b
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/rbdmap_RBDMAPFILE.yaml
@@ -0,0 +1,7 @@
+roles:
+- [client.0]
+tasks:
+- install:
+- workunit:
+ clients:
+ all: [rbd/test_rbdmap_RBDMAPFILE.sh]
diff --git a/qa/suites/rbd/singleton/all/read-flags-no-cache.yaml b/qa/suites/rbd/singleton/all/read-flags-no-cache.yaml
new file mode 100644
index 00000000..cf602cbb
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/read-flags-no-cache.yaml
@@ -0,0 +1,12 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ conf:
+ client:
+ rbd cache: false
+- workunit:
+ clients:
+ all: [rbd/read-flags.sh]
diff --git a/qa/suites/rbd/singleton/all/read-flags-writeback.yaml b/qa/suites/rbd/singleton/all/read-flags-writeback.yaml
new file mode 100644
index 00000000..e763bcc3
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/read-flags-writeback.yaml
@@ -0,0 +1,12 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ conf:
+ client:
+ rbd cache: true
+- workunit:
+ clients:
+ all: [rbd/read-flags.sh]
diff --git a/qa/suites/rbd/singleton/all/read-flags-writethrough.yaml b/qa/suites/rbd/singleton/all/read-flags-writethrough.yaml
new file mode 100644
index 00000000..fc499d49
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/read-flags-writethrough.yaml
@@ -0,0 +1,13 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ conf:
+ client:
+ rbd cache: true
+ rbd cache max dirty: 0
+- workunit:
+ clients:
+ all: [rbd/read-flags.sh]
diff --git a/qa/suites/rbd/singleton/all/snap-diff.yaml b/qa/suites/rbd/singleton/all/snap-diff.yaml
new file mode 100644
index 00000000..be7e6858
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/snap-diff.yaml
@@ -0,0 +1,10 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- cram:
+ clients:
+ client.0:
+ - src/test/cli-integration/rbd/snap-diff.t
diff --git a/qa/suites/rbd/singleton/all/verify_pool.yaml b/qa/suites/rbd/singleton/all/verify_pool.yaml
new file mode 100644
index 00000000..5ab06f74
--- /dev/null
+++ b/qa/suites/rbd/singleton/all/verify_pool.yaml
@@ -0,0 +1,9 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, client.0]
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- workunit:
+ clients:
+ all: [rbd/verify_pool.sh]
diff --git a/qa/suites/rbd/singleton/objectstore b/qa/suites/rbd/singleton/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rbd/singleton/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rbd/singleton/openstack.yaml b/qa/suites/rbd/singleton/openstack.yaml
new file mode 100644
index 00000000..21eca2bb
--- /dev/null
+++ b/qa/suites/rbd/singleton/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 2
+ size: 30 # GB
diff --git a/qa/suites/rbd/singleton/supported-random-distro$ b/qa/suites/rbd/singleton/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rbd/singleton/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rbd/thrash/% b/qa/suites/rbd/thrash/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/thrash/%
diff --git a/qa/suites/rbd/thrash/.qa b/qa/suites/rbd/thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/thrash/base/.qa b/qa/suites/rbd/thrash/base/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/thrash/base/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/thrash/base/install.yaml b/qa/suites/rbd/thrash/base/install.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/rbd/thrash/base/install.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/rbd/thrash/clusters/+ b/qa/suites/rbd/thrash/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/thrash/clusters/+
diff --git a/qa/suites/rbd/thrash/clusters/.qa b/qa/suites/rbd/thrash/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/thrash/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/thrash/clusters/fixed-2.yaml b/qa/suites/rbd/thrash/clusters/fixed-2.yaml
new file mode 120000
index 00000000..230ff0fd
--- /dev/null
+++ b/qa/suites/rbd/thrash/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/thrash/clusters/openstack.yaml b/qa/suites/rbd/thrash/clusters/openstack.yaml
new file mode 100644
index 00000000..40fef477
--- /dev/null
+++ b/qa/suites/rbd/thrash/clusters/openstack.yaml
@@ -0,0 +1,8 @@
+openstack:
+ - machine:
+ disk: 40 # GB
+ ram: 8000 # MB
+ cpus: 1
+ volumes: # attached to each instance
+ count: 4
+ size: 30 # GB
diff --git a/qa/suites/rbd/thrash/msgr-failures/.qa b/qa/suites/rbd/thrash/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/thrash/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/thrash/msgr-failures/few.yaml b/qa/suites/rbd/thrash/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/rbd/thrash/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rbd/thrash/objectstore b/qa/suites/rbd/thrash/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rbd/thrash/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rbd/thrash/supported-random-distro$ b/qa/suites/rbd/thrash/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rbd/thrash/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rbd/thrash/thrashers/.qa b/qa/suites/rbd/thrash/thrashers/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/thrash/thrashers/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/thrash/thrashers/cache.yaml b/qa/suites/rbd/thrash/thrashers/cache.yaml
new file mode 100644
index 00000000..24956484
--- /dev/null
+++ b/qa/suites/rbd/thrash/thrashers/cache.yaml
@@ -0,0 +1,21 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ - overall HEALTH_
+ - \(CACHE_POOL_NEAR_FULL\)
+ - \(CACHE_POOL_NO_HIT_SET\)
+tasks:
+- exec:
+ client.0:
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add rbd cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay rbd cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 60
+ - sudo ceph osd pool set cache target_max_objects 250
+- thrashosds:
+ timeout: 1200
diff --git a/qa/suites/rbd/thrash/thrashers/default.yaml b/qa/suites/rbd/thrash/thrashers/default.yaml
new file mode 100644
index 00000000..3f1615c8
--- /dev/null
+++ b/qa/suites/rbd/thrash/thrashers/default.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+tasks:
+- thrashosds:
+ timeout: 1200
diff --git a/qa/suites/rbd/thrash/thrashosds-health.yaml b/qa/suites/rbd/thrash/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/rbd/thrash/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/thrash/workloads/.qa b/qa/suites/rbd/thrash/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/thrash/workloads/journal.yaml b/qa/suites/rbd/thrash/workloads/journal.yaml
new file mode 100644
index 00000000..4dae1063
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/journal.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/journal.sh
diff --git a/qa/suites/rbd/thrash/workloads/rbd_api_tests.yaml b/qa/suites/rbd/thrash/workloads/rbd_api_tests.yaml
new file mode 100644
index 00000000..6ae7f462
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/rbd_api_tests.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ env:
+ RBD_FEATURES: "61"
diff --git a/qa/suites/rbd/thrash/workloads/rbd_api_tests_copy_on_read.yaml b/qa/suites/rbd/thrash/workloads/rbd_api_tests_copy_on_read.yaml
new file mode 100644
index 00000000..a9021548
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/rbd_api_tests_copy_on_read.yaml
@@ -0,0 +1,16 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ env:
+ RBD_FEATURES: "61"
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+ conf:
+ client:
+ rbd clone copy on read: true
diff --git a/qa/suites/rbd/thrash/workloads/rbd_api_tests_journaling.yaml b/qa/suites/rbd/thrash/workloads/rbd_api_tests_journaling.yaml
new file mode 100644
index 00000000..578115ee
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/rbd_api_tests_journaling.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ env:
+ RBD_FEATURES: "125"
diff --git a/qa/suites/rbd/thrash/workloads/rbd_api_tests_no_locking.yaml b/qa/suites/rbd/thrash/workloads/rbd_api_tests_no_locking.yaml
new file mode 100644
index 00000000..04af9c85
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/rbd_api_tests_no_locking.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ env:
+ RBD_FEATURES: "1"
diff --git a/qa/suites/rbd/thrash/workloads/rbd_fsx_cache_writeback.yaml b/qa/suites/rbd/thrash/workloads/rbd_fsx_cache_writeback.yaml
new file mode 100644
index 00000000..98e0b392
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/rbd_fsx_cache_writeback.yaml
@@ -0,0 +1,9 @@
+tasks:
+- rbd_fsx:
+ clients: [client.0]
+ ops: 6000
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd cache: true
diff --git a/qa/suites/rbd/thrash/workloads/rbd_fsx_cache_writethrough.yaml b/qa/suites/rbd/thrash/workloads/rbd_fsx_cache_writethrough.yaml
new file mode 100644
index 00000000..463ba996
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/rbd_fsx_cache_writethrough.yaml
@@ -0,0 +1,10 @@
+tasks:
+- rbd_fsx:
+ clients: [client.0]
+ ops: 6000
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd cache: true
+ rbd cache max dirty: 0
diff --git a/qa/suites/rbd/thrash/workloads/rbd_fsx_copy_on_read.yaml b/qa/suites/rbd/thrash/workloads/rbd_fsx_copy_on_read.yaml
new file mode 100644
index 00000000..0c284ca8
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/rbd_fsx_copy_on_read.yaml
@@ -0,0 +1,10 @@
+tasks:
+- rbd_fsx:
+ clients: [client.0]
+ ops: 6000
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd cache: true
+ rbd clone copy on read: true
diff --git a/qa/suites/rbd/thrash/workloads/rbd_fsx_deep_copy.yaml b/qa/suites/rbd/thrash/workloads/rbd_fsx_deep_copy.yaml
new file mode 100644
index 00000000..79749149
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/rbd_fsx_deep_copy.yaml
@@ -0,0 +1,5 @@
+tasks:
+- rbd_fsx:
+ clients: [client.0]
+ ops: 6000
+ deep_copy: True
diff --git a/qa/suites/rbd/thrash/workloads/rbd_fsx_journal.yaml b/qa/suites/rbd/thrash/workloads/rbd_fsx_journal.yaml
new file mode 100644
index 00000000..13e9a783
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/rbd_fsx_journal.yaml
@@ -0,0 +1,5 @@
+tasks:
+- rbd_fsx:
+ clients: [client.0]
+ ops: 6000
+ journal_replay: True
diff --git a/qa/suites/rbd/thrash/workloads/rbd_fsx_nocache.yaml b/qa/suites/rbd/thrash/workloads/rbd_fsx_nocache.yaml
new file mode 100644
index 00000000..968665e1
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/rbd_fsx_nocache.yaml
@@ -0,0 +1,9 @@
+tasks:
+- rbd_fsx:
+ clients: [client.0]
+ ops: 6000
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd cache: false
diff --git a/qa/suites/rbd/thrash/workloads/rbd_fsx_rate_limit.yaml b/qa/suites/rbd/thrash/workloads/rbd_fsx_rate_limit.yaml
new file mode 100644
index 00000000..611320bc
--- /dev/null
+++ b/qa/suites/rbd/thrash/workloads/rbd_fsx_rate_limit.yaml
@@ -0,0 +1,11 @@
+tasks:
+- rbd_fsx:
+ clients: [client.0]
+ ops: 6000
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd qos iops limit: 50
+ rbd qos iops burst: 100
+ rbd qos schedule tick min: 100
diff --git a/qa/suites/rbd/valgrind/% b/qa/suites/rbd/valgrind/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rbd/valgrind/%
diff --git a/qa/suites/rbd/valgrind/.qa b/qa/suites/rbd/valgrind/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/valgrind/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/valgrind/base/.qa b/qa/suites/rbd/valgrind/base/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/valgrind/base/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/valgrind/base/install.yaml b/qa/suites/rbd/valgrind/base/install.yaml
new file mode 100644
index 00000000..2030acb9
--- /dev/null
+++ b/qa/suites/rbd/valgrind/base/install.yaml
@@ -0,0 +1,3 @@
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/rbd/valgrind/centos_latest.yaml b/qa/suites/rbd/valgrind/centos_latest.yaml
new file mode 120000
index 00000000..bd9854e7
--- /dev/null
+++ b/qa/suites/rbd/valgrind/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/valgrind/clusters b/qa/suites/rbd/valgrind/clusters
new file mode 120000
index 00000000..ae92569e
--- /dev/null
+++ b/qa/suites/rbd/valgrind/clusters
@@ -0,0 +1 @@
+../basic/clusters \ No newline at end of file
diff --git a/qa/suites/rbd/valgrind/objectstore b/qa/suites/rbd/valgrind/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rbd/valgrind/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rbd/valgrind/validator/.qa b/qa/suites/rbd/valgrind/validator/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/valgrind/validator/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/valgrind/validator/memcheck.yaml b/qa/suites/rbd/valgrind/validator/memcheck.yaml
new file mode 100644
index 00000000..fcea1b88
--- /dev/null
+++ b/qa/suites/rbd/valgrind/validator/memcheck.yaml
@@ -0,0 +1,12 @@
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+os_type: centos
+
+overrides:
+ install:
+ ceph:
+ debuginfo: true
+ rbd_fsx:
+ valgrind: ["--tool=memcheck"]
+ workunit:
+ env:
+ VALGRIND: "--tool=memcheck --leak-check=full"
diff --git a/qa/suites/rbd/valgrind/workloads/.qa b/qa/suites/rbd/valgrind/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rbd/valgrind/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rbd/valgrind/workloads/c_api_tests.yaml b/qa/suites/rbd/valgrind/workloads/c_api_tests.yaml
new file mode 100644
index 00000000..04af9c85
--- /dev/null
+++ b/qa/suites/rbd/valgrind/workloads/c_api_tests.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ env:
+ RBD_FEATURES: "1"
diff --git a/qa/suites/rbd/valgrind/workloads/c_api_tests_with_defaults.yaml b/qa/suites/rbd/valgrind/workloads/c_api_tests_with_defaults.yaml
new file mode 100644
index 00000000..6ae7f462
--- /dev/null
+++ b/qa/suites/rbd/valgrind/workloads/c_api_tests_with_defaults.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ env:
+ RBD_FEATURES: "61"
diff --git a/qa/suites/rbd/valgrind/workloads/c_api_tests_with_journaling.yaml b/qa/suites/rbd/valgrind/workloads/c_api_tests_with_journaling.yaml
new file mode 100644
index 00000000..578115ee
--- /dev/null
+++ b/qa/suites/rbd/valgrind/workloads/c_api_tests_with_journaling.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ env:
+ RBD_FEATURES: "125"
diff --git a/qa/suites/rbd/valgrind/workloads/fsx.yaml b/qa/suites/rbd/valgrind/workloads/fsx.yaml
new file mode 100644
index 00000000..5c745a2c
--- /dev/null
+++ b/qa/suites/rbd/valgrind/workloads/fsx.yaml
@@ -0,0 +1,4 @@
+tasks:
+- rbd_fsx:
+ clients: [client.0]
+ size: 134217728
diff --git a/qa/suites/rbd/valgrind/workloads/python_api_tests.yaml b/qa/suites/rbd/valgrind/workloads/python_api_tests.yaml
new file mode 100644
index 00000000..a7b3ce7d
--- /dev/null
+++ b/qa/suites/rbd/valgrind/workloads/python_api_tests.yaml
@@ -0,0 +1,7 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
+ env:
+ RBD_FEATURES: "1"
diff --git a/qa/suites/rbd/valgrind/workloads/python_api_tests_with_defaults.yaml b/qa/suites/rbd/valgrind/workloads/python_api_tests_with_defaults.yaml
new file mode 100644
index 00000000..40b2312f
--- /dev/null
+++ b/qa/suites/rbd/valgrind/workloads/python_api_tests_with_defaults.yaml
@@ -0,0 +1,7 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
+ env:
+ RBD_FEATURES: "61"
diff --git a/qa/suites/rbd/valgrind/workloads/python_api_tests_with_journaling.yaml b/qa/suites/rbd/valgrind/workloads/python_api_tests_with_journaling.yaml
new file mode 100644
index 00000000..d0e905ff
--- /dev/null
+++ b/qa/suites/rbd/valgrind/workloads/python_api_tests_with_journaling.yaml
@@ -0,0 +1,7 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
+ env:
+ RBD_FEATURES: "125"
diff --git a/qa/suites/rbd/valgrind/workloads/rbd_mirror.yaml b/qa/suites/rbd/valgrind/workloads/rbd_mirror.yaml
new file mode 100644
index 00000000..e0943439
--- /dev/null
+++ b/qa/suites/rbd/valgrind/workloads/rbd_mirror.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(CACHE_POOL_NO_HIT_SET\)
+ - \(POOL_APP_NOT_ENABLED\)
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_rbd_mirror.sh
diff --git a/qa/suites/rgw/.qa b/qa/suites/rgw/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/hadoop-s3a/% b/qa/suites/rgw/hadoop-s3a/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/%
diff --git a/qa/suites/rgw/hadoop-s3a/.qa b/qa/suites/rgw/hadoop-s3a/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/hadoop-s3a/clusters/.qa b/qa/suites/rgw/hadoop-s3a/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/hadoop-s3a/clusters/fixed-2.yaml b/qa/suites/rgw/hadoop-s3a/clusters/fixed-2.yaml
new file mode 120000
index 00000000..230ff0fd
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/hadoop-s3a/hadoop/.qa b/qa/suites/rgw/hadoop-s3a/hadoop/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/hadoop/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/hadoop-s3a/hadoop/default.yaml b/qa/suites/rgw/hadoop-s3a/hadoop/default.yaml
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/hadoop/default.yaml
@@ -0,0 +1 @@
+
diff --git a/qa/suites/rgw/hadoop-s3a/hadoop/v32.yaml b/qa/suites/rgw/hadoop-s3a/hadoop/v32.yaml
new file mode 100644
index 00000000..d017b756
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/hadoop/v32.yaml
@@ -0,0 +1,3 @@
+overrides:
+ s3a-hadoop:
+ hadoop-version: '3.2.0'
diff --git a/qa/suites/rgw/hadoop-s3a/s3a-hadoop.yaml b/qa/suites/rgw/hadoop-s3a/s3a-hadoop.yaml
new file mode 100644
index 00000000..ed077a89
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/s3a-hadoop.yaml
@@ -0,0 +1,11 @@
+tasks:
+- install:
+- ceph:
+- ssh-keys:
+- dnsmasq:
+ client.0: [s3.]
+- rgw:
+ client.0:
+ dns-name: s3.
+- s3a-hadoop:
+ role: client.0
diff --git a/qa/suites/rgw/hadoop-s3a/supported-random-distro$ b/qa/suites/rgw/hadoop-s3a/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/% b/qa/suites/rgw/multifs/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rgw/multifs/%
diff --git a/qa/suites/rgw/multifs/.qa b/qa/suites/rgw/multifs/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/multifs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/clusters/.qa b/qa/suites/rgw/multifs/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/multifs/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/clusters/fixed-2.yaml b/qa/suites/rgw/multifs/clusters/fixed-2.yaml
new file mode 120000
index 00000000..230ff0fd
--- /dev/null
+++ b/qa/suites/rgw/multifs/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/frontend/.qa b/qa/suites/rgw/multifs/frontend/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/multifs/frontend/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/frontend/civetweb.yaml b/qa/suites/rgw/multifs/frontend/civetweb.yaml
new file mode 120000
index 00000000..f9115ff4
--- /dev/null
+++ b/qa/suites/rgw/multifs/frontend/civetweb.yaml
@@ -0,0 +1 @@
+.qa/rgw_frontend/civetweb.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/objectstore b/qa/suites/rgw/multifs/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rgw/multifs/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/overrides.yaml b/qa/suites/rgw/multifs/overrides.yaml
new file mode 100644
index 00000000..339784d3
--- /dev/null
+++ b/qa/suites/rgw/multifs/overrides.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ wait-for-scrub: false
+ conf:
+ client:
+ debug rgw: 20
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo= testkey-2=aWIKTWFrZWZpbGUKbWFuCm91dApzcmMKVGVzdGluZwo=
+ rgw crypt require ssl: false
+ rgw:
+ storage classes: LUKEWARM, FROZEN
diff --git a/qa/suites/rgw/multifs/rgw_pool_type b/qa/suites/rgw/multifs/rgw_pool_type
new file mode 120000
index 00000000..3bbd28e9
--- /dev/null
+++ b/qa/suites/rgw/multifs/rgw_pool_type
@@ -0,0 +1 @@
+.qa/rgw_pool_type \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/tasks/.qa b/qa/suites/rgw/multifs/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/tasks/rgw_bucket_quota.yaml b/qa/suites/rgw/multifs/tasks/rgw_bucket_quota.yaml
new file mode 100644
index 00000000..c518d0e1
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_bucket_quota.yaml
@@ -0,0 +1,10 @@
+# Amazon/S3.pm (cpan) not available as an rpm
+os_type: ubuntu
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- workunit:
+ clients:
+ client.0:
+ - rgw/s3_bucket_quota.pl
diff --git a/qa/suites/rgw/multifs/tasks/rgw_multipart_upload.yaml b/qa/suites/rgw/multifs/tasks/rgw_multipart_upload.yaml
new file mode 100644
index 00000000..b042aa80
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_multipart_upload.yaml
@@ -0,0 +1,10 @@
+# Amazon::S3 is not available on el7
+os_type: ubuntu
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- workunit:
+ clients:
+ client.0:
+ - rgw/s3_multipart_upload.pl
diff --git a/qa/suites/rgw/multifs/tasks/rgw_ragweed.yaml b/qa/suites/rgw/multifs/tasks/rgw_ragweed.yaml
new file mode 100644
index 00000000..32b0d5f2
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_ragweed.yaml
@@ -0,0 +1,19 @@
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- ragweed:
+ client.0:
+ default-branch: ceph-nautilus
+ rgw_server: client.0
+ stages: prepare
+- ragweed:
+ client.0:
+ default-branch: ceph-nautilus
+ rgw_server: client.0
+ stages: check
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw lc debug interval: 10
diff --git a/qa/suites/rgw/multifs/tasks/rgw_readwrite.yaml b/qa/suites/rgw/multifs/tasks/rgw_readwrite.yaml
new file mode 100644
index 00000000..40a91599
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_readwrite.yaml
@@ -0,0 +1,17 @@
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- s3readwrite:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+ readwrite:
+ bucket: rwtest
+ readers: 10
+ writers: 3
+ duration: 300
+ files:
+ num: 10
+ size: 2000
+ stddev: 500
diff --git a/qa/suites/rgw/multifs/tasks/rgw_roundtrip.yaml b/qa/suites/rgw/multifs/tasks/rgw_roundtrip.yaml
new file mode 100644
index 00000000..8f888313
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_roundtrip.yaml
@@ -0,0 +1,17 @@
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- s3roundtrip:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+ roundtrip:
+ bucket: rttest
+ readers: 10
+ writers: 3
+ duration: 300
+ files:
+ num: 10
+ size: 2000
+ stddev: 500
diff --git a/qa/suites/rgw/multifs/tasks/rgw_s3tests.yaml b/qa/suites/rgw/multifs/tasks/rgw_s3tests.yaml
new file mode 100644
index 00000000..72bae1ac
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_s3tests.yaml
@@ -0,0 +1,13 @@
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- s3tests:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw lc debug interval: 10
diff --git a/qa/suites/rgw/multifs/tasks/rgw_swift.yaml b/qa/suites/rgw/multifs/tasks/rgw_swift.yaml
new file mode 100644
index 00000000..e959e0ac
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_swift.yaml
@@ -0,0 +1,8 @@
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- swift:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
diff --git a/qa/suites/rgw/multifs/tasks/rgw_user_quota.yaml b/qa/suites/rgw/multifs/tasks/rgw_user_quota.yaml
new file mode 100644
index 00000000..ef9d6df1
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_user_quota.yaml
@@ -0,0 +1,10 @@
+# Amazon/S3.pm (cpan) not available as an rpm
+os_type: ubuntu
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- workunit:
+ clients:
+ client.0:
+ - rgw/s3_user_quota.pl
diff --git a/qa/suites/rgw/multisite/% b/qa/suites/rgw/multisite/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rgw/multisite/%
diff --git a/qa/suites/rgw/multisite/.qa b/qa/suites/rgw/multisite/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/multisite/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multisite/clusters.yaml b/qa/suites/rgw/multisite/clusters.yaml
new file mode 100644
index 00000000..536ef7ca
--- /dev/null
+++ b/qa/suites/rgw/multisite/clusters.yaml
@@ -0,0 +1,3 @@
+roles:
+- [c1.mon.a, c1.mgr.x, c1.osd.0, c1.osd.1, c1.osd.2, c1.client.0, c1.client.1]
+- [c2.mon.a, c2.mgr.x, c2.osd.0, c2.osd.1, c2.osd.2, c2.client.0, c2.client.1]
diff --git a/qa/suites/rgw/multisite/frontend b/qa/suites/rgw/multisite/frontend
new file mode 120000
index 00000000..926a53e8
--- /dev/null
+++ b/qa/suites/rgw/multisite/frontend
@@ -0,0 +1 @@
+.qa/rgw_frontend \ No newline at end of file
diff --git a/qa/suites/rgw/multisite/omap_limits.yaml b/qa/suites/rgw/multisite/omap_limits.yaml
new file mode 100644
index 00000000..cd02c212
--- /dev/null
+++ b/qa/suites/rgw/multisite/omap_limits.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ conf:
+ # instead of expanding the matrix, run each osd with a different omap limit
+ osd.0:
+ osd_max_omap_entries_per_request: 10
+ osd.1:
+ osd_max_omap_entries_per_request: 1000
+ osd.2:
+ osd_max_omap_entries_per_request: 10000
diff --git a/qa/suites/rgw/multisite/overrides.yaml b/qa/suites/rgw/multisite/overrides.yaml
new file mode 100644
index 00000000..a04bae9a
--- /dev/null
+++ b/qa/suites/rgw/multisite/overrides.yaml
@@ -0,0 +1,15 @@
+overrides:
+ ceph:
+ wait-for-scrub: false
+ conf:
+ client:
+ debug rgw: 20
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo=
+ rgw crypt require ssl: false
+ rgw sync log trim interval: 0
+ rgw curl low speed time: 300
+ rgw md log max shards: 4
+ rgw data log num shards: 4
+ rgw sync obj etag verify: true
+ rgw:
+ compression type: random
diff --git a/qa/suites/rgw/multisite/realms/.qa b/qa/suites/rgw/multisite/realms/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/multisite/realms/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multisite/realms/three-zone-plus-pubsub.yaml b/qa/suites/rgw/multisite/realms/three-zone-plus-pubsub.yaml
new file mode 100644
index 00000000..e77e5ade
--- /dev/null
+++ b/qa/suites/rgw/multisite/realms/three-zone-plus-pubsub.yaml
@@ -0,0 +1,23 @@
+overrides:
+ rgw-multisite:
+ realm:
+ name: test-realm
+ is default: true
+ zonegroups:
+ - name: test-zonegroup
+ is_master: true
+ is_default: true
+ endpoints: [c1.client.0]
+ zones:
+ - name: test-zone1
+ is_master: true
+ is_default: true
+ endpoints: [c1.client.0]
+ - name: test-zone2
+ is_default: true
+ endpoints: [c2.client.0]
+ - name: test-zone3
+ endpoints: [c1.client.1]
+ - name: test-zone4
+ endpoints: [c2.client.1]
+ is_pubsub: true
diff --git a/qa/suites/rgw/multisite/realms/three-zone.yaml b/qa/suites/rgw/multisite/realms/three-zone.yaml
new file mode 100644
index 00000000..a8a7ca1d
--- /dev/null
+++ b/qa/suites/rgw/multisite/realms/three-zone.yaml
@@ -0,0 +1,20 @@
+overrides:
+ rgw-multisite:
+ realm:
+ name: test-realm
+ is default: true
+ zonegroups:
+ - name: test-zonegroup
+ is_master: true
+ is_default: true
+ endpoints: [c1.client.0]
+ zones:
+ - name: test-zone1
+ is_master: true
+ is_default: true
+ endpoints: [c1.client.0]
+ - name: test-zone2
+ is_default: true
+ endpoints: [c2.client.0]
+ - name: test-zone3
+ endpoints: [c1.client.1]
diff --git a/qa/suites/rgw/multisite/realms/two-zonegroup.yaml b/qa/suites/rgw/multisite/realms/two-zonegroup.yaml
new file mode 100644
index 00000000..dc5a786c
--- /dev/null
+++ b/qa/suites/rgw/multisite/realms/two-zonegroup.yaml
@@ -0,0 +1,27 @@
+overrides:
+ rgw-multisite:
+ realm:
+ name: test-realm
+ is default: true
+ zonegroups:
+ - name: a
+ is_master: true
+ is_default: true
+ endpoints: [c1.client.0]
+ zones:
+ - name: a1
+ is_master: true
+ is_default: true
+ endpoints: [c1.client.0]
+ - name: a2
+ endpoints: [c1.client.1]
+ - name: b
+ is_default: true
+ endpoints: [c2.client.0]
+ zones:
+ - name: b1
+ is_master: true
+ is_default: true
+ endpoints: [c2.client.0]
+ - name: b2
+ endpoints: [c2.client.1]
diff --git a/qa/suites/rgw/multisite/tasks/.qa b/qa/suites/rgw/multisite/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/multisite/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multisite/tasks/test_multi.yaml b/qa/suites/rgw/multisite/tasks/test_multi.yaml
new file mode 100644
index 00000000..3247f241
--- /dev/null
+++ b/qa/suites/rgw/multisite/tasks/test_multi.yaml
@@ -0,0 +1,26 @@
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+#os_type: centos
+# ubuntu and no valgrind until we migrate test to py3
+os_type: ubuntu
+
+tasks:
+- install:
+- ceph: {cluster: c1}
+- ceph: {cluster: c2}
+- rgw:
+ c1.client.0:
+ port: 8000
+# valgrind: [--tool=memcheck, --max-threads=1024] # http://tracker.ceph.com/issues/25214
+ c1.client.1:
+ port: 8001
+# valgrind: [--tool=memcheck, --max-threads=1024]
+ c2.client.0:
+ port: 8000
+# valgrind: [--tool=memcheck, --max-threads=1024]
+ c2.client.1:
+ port: 8001
+# valgrind: [--tool=memcheck, --max-threads=1024]
+- rgw-multisite:
+- rgw-multisite-tests:
+ config:
+ reconfigure_delay: 60
diff --git a/qa/suites/rgw/multisite/valgrind.yaml b/qa/suites/rgw/multisite/valgrind.yaml
new file mode 100644
index 00000000..d18d0fc9
--- /dev/null
+++ b/qa/suites/rgw/multisite/valgrind.yaml
@@ -0,0 +1,19 @@
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+#os_type: centos
+# ubuntu and no valgrind until we migrate test to py3
+os_type: ubuntu
+
+overrides:
+ install:
+ ceph:
+ conf:
+ global:
+ osd heartbeat grace: 40
+ mon:
+ mon osd crush smoke test: false
+ osd:
+ osd fast shutdown: false
+# valgrind:
+# mon: [--tool=memcheck, --leak-check=full, --show-reachable=yes]
+# osd: [--tool=memcheck]
+# mds: [--tool=memcheck]
diff --git a/qa/suites/rgw/singleton/% b/qa/suites/rgw/singleton/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rgw/singleton/%
diff --git a/qa/suites/rgw/singleton/.qa b/qa/suites/rgw/singleton/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/singleton/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/singleton/all/.qa b/qa/suites/rgw/singleton/all/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/singleton/all/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/singleton/all/radosgw-admin.yaml b/qa/suites/rgw/singleton/all/radosgw-admin.yaml
new file mode 100644
index 00000000..010a0647
--- /dev/null
+++ b/qa/suites/rgw/singleton/all/radosgw-admin.yaml
@@ -0,0 +1,21 @@
+roles:
+- [mon.a, osd.0]
+- [mgr.x, client.0, osd.1, osd.2, osd.3]
+openstack:
+- volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ conf:
+ client:
+ debug ms: 1
+ rgw gc obj min wait: 15
+ osd:
+ debug ms: 1
+ debug objclass : 20
+- rgw:
+ client.0:
+- radosgw-admin:
+- radosgw-admin-rest:
diff --git a/qa/suites/rgw/singleton/frontend/.qa b/qa/suites/rgw/singleton/frontend/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/singleton/frontend/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/singleton/frontend/civetweb.yaml b/qa/suites/rgw/singleton/frontend/civetweb.yaml
new file mode 120000
index 00000000..f9115ff4
--- /dev/null
+++ b/qa/suites/rgw/singleton/frontend/civetweb.yaml
@@ -0,0 +1 @@
+.qa/rgw_frontend/civetweb.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/singleton/objectstore b/qa/suites/rgw/singleton/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rgw/singleton/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rgw/singleton/overrides.yaml b/qa/suites/rgw/singleton/overrides.yaml
new file mode 100644
index 00000000..ed4ad591
--- /dev/null
+++ b/qa/suites/rgw/singleton/overrides.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ wait-for-scrub: false
+ conf:
+ client:
+ debug rgw: 20
diff --git a/qa/suites/rgw/singleton/rgw_pool_type b/qa/suites/rgw/singleton/rgw_pool_type
new file mode 120000
index 00000000..3bbd28e9
--- /dev/null
+++ b/qa/suites/rgw/singleton/rgw_pool_type
@@ -0,0 +1 @@
+.qa/rgw_pool_type \ No newline at end of file
diff --git a/qa/suites/rgw/singleton/supported-random-distro$ b/qa/suites/rgw/singleton/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/rgw/singleton/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rgw/tempest/% b/qa/suites/rgw/tempest/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rgw/tempest/%
diff --git a/qa/suites/rgw/tempest/.qa b/qa/suites/rgw/tempest/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/tempest/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/tempest/clusters/.qa b/qa/suites/rgw/tempest/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/tempest/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/tempest/clusters/fixed-1.yaml b/qa/suites/rgw/tempest/clusters/fixed-1.yaml
new file mode 120000
index 00000000..02df5dd0
--- /dev/null
+++ b/qa/suites/rgw/tempest/clusters/fixed-1.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-1.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/tempest/frontend b/qa/suites/rgw/tempest/frontend
new file mode 120000
index 00000000..926a53e8
--- /dev/null
+++ b/qa/suites/rgw/tempest/frontend
@@ -0,0 +1 @@
+.qa/rgw_frontend \ No newline at end of file
diff --git a/qa/suites/rgw/tempest/tasks/.qa b/qa/suites/rgw/tempest/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/tempest/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/tempest/tasks/rgw_tempest.yaml b/qa/suites/rgw/tempest/tasks/rgw_tempest.yaml
new file mode 100644
index 00000000..bfbb0cb4
--- /dev/null
+++ b/qa/suites/rgw/tempest/tasks/rgw_tempest.yaml
@@ -0,0 +1,78 @@
+# ubuntu for py2 until we move to py3
+os_type: ubuntu
+
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+tasks:
+- install:
+- ceph:
+- tox: [ client.0 ]
+- keystone:
+ client.0:
+ sha1: 17.0.0.0rc2
+ force-branch: master
+ tenants:
+ - name: admin
+ description: Admin Tenant
+ users:
+ - name: admin
+ password: ADMIN
+ project: admin
+ roles: [ name: admin, name: Member ]
+ role-mappings:
+ - name: admin
+ user: admin
+ project: admin
+ services:
+ - name: keystone
+ type: identity
+ description: Keystone Identity Service
+ - name: swift
+ type: object-store
+ description: Swift Service
+- rgw:
+ client.0:
+ frontend_prefix: /swift
+ use-keystone-role: client.0
+- tempest:
+ client.0:
+ sha1: d3fa46495a78160989120ba39793f7ba2e22d81c
+ force-branch: master
+ use-keystone-role: client.0
+ auth:
+ admin_username: admin
+ admin_project_name: admin
+ admin_password: ADMIN
+ admin_domain_name: Default
+ identity:
+ uri: http://{keystone_public_host}:{keystone_public_port}/v2.0/
+ uri_v3: http://{keystone_public_host}:{keystone_public_port}/v3/
+ admin_role: admin
+ object-storage:
+ reseller_admin_role: admin
+ object-storage-feature-enabled:
+ container_sync: false
+ discoverability: false
+ blacklist:
+ # TODO(rzarzynski): we really need to update the list after
+ # merging PRs #15369 and #12704. Additionally, we would be
+ # able to enable the discoverability API testing above.
+ - .*test_list_containers_reverse_order.*
+ - .*test_list_container_contents_with_end_marker.*
+ - .*test_delete_non_empty_container.*
+ - .*test_container_synchronization.*
+ - .*test_get_object_after_expiration_time.*
+ - .*test_create_object_with_transfer_encoding.*
+overrides:
+ ceph:
+ conf:
+ global:
+ osd_min_pg_log_entries: 10
+ osd_max_pg_log_entries: 10
+ client:
+ rgw keystone admin token: ADMIN
+ rgw keystone accepted roles: admin,Member
+ rgw keystone implicit tenants: true
+ rgw keystone accepted admin roles: admin
+ rgw swift enforce content length: true
+ rgw swift account in url: true
+ rgw swift versioning enabled: true
diff --git a/qa/suites/rgw/tempest/ubuntu_latest.yaml b/qa/suites/rgw/tempest/ubuntu_latest.yaml
new file mode 120000
index 00000000..3a09f9ab
--- /dev/null
+++ b/qa/suites/rgw/tempest/ubuntu_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/ubuntu_latest.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/% b/qa/suites/rgw/thrash/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rgw/thrash/%
diff --git a/qa/suites/rgw/thrash/.qa b/qa/suites/rgw/thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/civetweb.yaml b/qa/suites/rgw/thrash/civetweb.yaml
new file mode 100644
index 00000000..5845a0e6
--- /dev/null
+++ b/qa/suites/rgw/thrash/civetweb.yaml
@@ -0,0 +1,3 @@
+overrides:
+ rgw:
+ frontend: civetweb
diff --git a/qa/suites/rgw/thrash/clusters/.qa b/qa/suites/rgw/thrash/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/thrash/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/clusters/fixed-2.yaml b/qa/suites/rgw/thrash/clusters/fixed-2.yaml
new file mode 120000
index 00000000..230ff0fd
--- /dev/null
+++ b/qa/suites/rgw/thrash/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/install.yaml b/qa/suites/rgw/thrash/install.yaml
new file mode 100644
index 00000000..84a1d70c
--- /dev/null
+++ b/qa/suites/rgw/thrash/install.yaml
@@ -0,0 +1,5 @@
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+
diff --git a/qa/suites/rgw/thrash/objectstore b/qa/suites/rgw/thrash/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rgw/thrash/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/thrasher/.qa b/qa/suites/rgw/thrash/thrasher/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/thrash/thrasher/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/thrasher/default.yaml b/qa/suites/rgw/thrash/thrasher/default.yaml
new file mode 100644
index 00000000..1f35f1bc
--- /dev/null
+++ b/qa/suites/rgw/thrash/thrasher/default.yaml
@@ -0,0 +1,9 @@
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ op_delay: 30
+ chance_test_min_size: 0
+ ceph_objectstore_tool: false
diff --git a/qa/suites/rgw/thrash/thrashosds-health.yaml b/qa/suites/rgw/thrash/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/rgw/thrash/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/workload/.qa b/qa/suites/rgw/thrash/workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/workload/rgw_bucket_quota.yaml b/qa/suites/rgw/thrash/workload/rgw_bucket_quota.yaml
new file mode 100644
index 00000000..32e6af59
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/rgw_bucket_quota.yaml
@@ -0,0 +1,7 @@
+# Amazon/S3.pm (cpan) not available as an rpm
+os_type: ubuntu
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rgw/s3_bucket_quota.pl
diff --git a/qa/suites/rgw/thrash/workload/rgw_multipart_upload.yaml b/qa/suites/rgw/thrash/workload/rgw_multipart_upload.yaml
new file mode 100644
index 00000000..b792336d
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/rgw_multipart_upload.yaml
@@ -0,0 +1,7 @@
+# Amazon::S3 is not available on el7
+os_type: ubuntu
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rgw/s3_multipart_upload.pl
diff --git a/qa/suites/rgw/thrash/workload/rgw_readwrite.yaml b/qa/suites/rgw/thrash/workload/rgw_readwrite.yaml
new file mode 100644
index 00000000..d67d5263
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/rgw_readwrite.yaml
@@ -0,0 +1,14 @@
+tasks:
+- s3readwrite:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+ readwrite:
+ bucket: rwtest
+ readers: 10
+ writers: 3
+ duration: 300
+ files:
+ num: 10
+ size: 2000
+ stddev: 500
diff --git a/qa/suites/rgw/thrash/workload/rgw_roundtrip.yaml b/qa/suites/rgw/thrash/workload/rgw_roundtrip.yaml
new file mode 100644
index 00000000..b4b9806d
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/rgw_roundtrip.yaml
@@ -0,0 +1,14 @@
+tasks:
+- s3roundtrip:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+ roundtrip:
+ bucket: rttest
+ readers: 10
+ writers: 3
+ duration: 300
+ files:
+ num: 10
+ size: 2000
+ stddev: 500
diff --git a/qa/suites/rgw/thrash/workload/rgw_s3tests.yaml b/qa/suites/rgw/thrash/workload/rgw_s3tests.yaml
new file mode 100644
index 00000000..91987ed0
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/rgw_s3tests.yaml
@@ -0,0 +1,12 @@
+tasks:
+- s3tests:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw lc debug interval: 10
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo= testkey-2=aWIKTWFrZWZpbGUKbWFuCm91dApzcmMKVGVzdGluZwo=
+ rgw crypt require ssl: false
diff --git a/qa/suites/rgw/thrash/workload/rgw_swift.yaml b/qa/suites/rgw/thrash/workload/rgw_swift.yaml
new file mode 100644
index 00000000..dcb1c1ac
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/rgw_swift.yaml
@@ -0,0 +1,5 @@
+tasks:
+- swift:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
diff --git a/qa/suites/rgw/thrash/workload/rgw_user_quota.yaml b/qa/suites/rgw/thrash/workload/rgw_user_quota.yaml
new file mode 100644
index 00000000..0a988827
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/rgw_user_quota.yaml
@@ -0,0 +1,7 @@
+# Amazon/S3.pm (cpan) not available as an rpm
+os_type: ubuntu
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rgw/s3_user_quota.pl
diff --git a/qa/suites/rgw/tools/+ b/qa/suites/rgw/tools/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rgw/tools/+
diff --git a/qa/suites/rgw/tools/.qa b/qa/suites/rgw/tools/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/rgw/tools/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/rgw/tools/centos_latest.yaml b/qa/suites/rgw/tools/centos_latest.yaml
new file mode 120000
index 00000000..bd9854e7
--- /dev/null
+++ b/qa/suites/rgw/tools/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/tools/cluster.yaml b/qa/suites/rgw/tools/cluster.yaml
new file mode 100644
index 00000000..0eab7eba
--- /dev/null
+++ b/qa/suites/rgw/tools/cluster.yaml
@@ -0,0 +1,9 @@
+roles:
+- [mon.a, osd.0, osd.1, osd.2, mgr.0, client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 1
+ size: 10 # GB
+overrides:
+ rgw:
+ frontend: beast \ No newline at end of file
diff --git a/qa/suites/rgw/tools/tasks.yaml b/qa/suites/rgw/tools/tasks.yaml
new file mode 100644
index 00000000..acceb21c
--- /dev/null
+++ b/qa/suites/rgw/tools/tasks.yaml
@@ -0,0 +1,19 @@
+tasks:
+- install:
+- ceph:
+- rgw:
+ client.0:
+ # force rgw_dns_name to be set with the fully qualified host name;
+ # it will be appended to the empty string
+ dns-name: ''
+- workunit:
+ clients:
+ client.0:
+ - rgw/test_rgw_orphan_list.sh
+overrides:
+ ceph:
+ conf:
+ client:
+ debug rgw: 20
+ debug ms: 1
+ rgw enable static website: false
diff --git a/qa/suites/rgw/verify/% b/qa/suites/rgw/verify/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rgw/verify/%
diff --git a/qa/suites/rgw/verify/.qa b/qa/suites/rgw/verify/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/verify/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/verify/clusters/.qa b/qa/suites/rgw/verify/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/verify/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/verify/clusters/fixed-2.yaml b/qa/suites/rgw/verify/clusters/fixed-2.yaml
new file mode 120000
index 00000000..230ff0fd
--- /dev/null
+++ b/qa/suites/rgw/verify/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/verify/frontend b/qa/suites/rgw/verify/frontend
new file mode 120000
index 00000000..926a53e8
--- /dev/null
+++ b/qa/suites/rgw/verify/frontend
@@ -0,0 +1 @@
+.qa/rgw_frontend \ No newline at end of file
diff --git a/qa/suites/rgw/verify/msgr-failures/.qa b/qa/suites/rgw/verify/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/verify/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/verify/msgr-failures/few.yaml b/qa/suites/rgw/verify/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/rgw/verify/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rgw/verify/objectstore b/qa/suites/rgw/verify/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/rgw/verify/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/rgw/verify/overrides.yaml b/qa/suites/rgw/verify/overrides.yaml
new file mode 100644
index 00000000..8b0b5cff
--- /dev/null
+++ b/qa/suites/rgw/verify/overrides.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ debug rgw: 20
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo= testkey-2=aWIKTWFrZWZpbGUKbWFuCm91dApzcmMKVGVzdGluZwo=
+ rgw crypt require ssl: false
+ rgw:
+ compression type: random
+ storage classes: LUKEWARM, FROZEN
diff --git a/qa/suites/rgw/verify/proto/.qa b/qa/suites/rgw/verify/proto/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/verify/proto/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/verify/proto/http.yaml b/qa/suites/rgw/verify/proto/http.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rgw/verify/proto/http.yaml
diff --git a/qa/suites/rgw/verify/proto/https.yaml b/qa/suites/rgw/verify/proto/https.yaml
new file mode 100644
index 00000000..fb6b6520
--- /dev/null
+++ b/qa/suites/rgw/verify/proto/https.yaml
@@ -0,0 +1,20 @@
+overrides:
+ openssl_keys:
+ root:
+ client: client.0
+ key-type: rsa:4096
+ cn: teuthology
+ install: [client.0, client.1]
+ rgw.client.0:
+ client: client.0
+ ca: root
+ embed-key: true
+ rgw.client.1:
+ client: client.1
+ ca: root
+ embed-key: true
+ rgw:
+ client.0:
+ ssl certificate: rgw.client.0
+ client.1:
+ ssl certificate: rgw.client.1
diff --git a/qa/suites/rgw/verify/rgw_pool_type b/qa/suites/rgw/verify/rgw_pool_type
new file mode 120000
index 00000000..3bbd28e9
--- /dev/null
+++ b/qa/suites/rgw/verify/rgw_pool_type
@@ -0,0 +1 @@
+.qa/rgw_pool_type \ No newline at end of file
diff --git a/qa/suites/rgw/verify/striping$/stripe-equals-chunk.yaml b/qa/suites/rgw/verify/striping$/stripe-equals-chunk.yaml
new file mode 100644
index 00000000..9b3e20a8
--- /dev/null
+++ b/qa/suites/rgw/verify/striping$/stripe-equals-chunk.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ # use default values where chunk-size=stripe-size
+ #rgw max chunk size: 4194304
+ #rgw obj stripe size: 4194304
diff --git a/qa/suites/rgw/verify/striping$/stripe-greater-than-chunk.yaml b/qa/suites/rgw/verify/striping$/stripe-greater-than-chunk.yaml
new file mode 100644
index 00000000..3bf40d6d
--- /dev/null
+++ b/qa/suites/rgw/verify/striping$/stripe-greater-than-chunk.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw max chunk size: 4194304
+ # stripe size greater than (and not a multiple of) chunk size
+ rgw obj stripe size: 6291456
diff --git a/qa/suites/rgw/verify/tasks/+ b/qa/suites/rgw/verify/tasks/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/+
diff --git a/qa/suites/rgw/verify/tasks/.qa b/qa/suites/rgw/verify/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/verify/tasks/0-install.yaml b/qa/suites/rgw/verify/tasks/0-install.yaml
new file mode 100644
index 00000000..ce1d9f56
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/0-install.yaml
@@ -0,0 +1,21 @@
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+#os_type: centos
+# ubuntu and no valgrind until we migrate test to py3
+os_type: ubuntu
+
+tasks:
+- install:
+- ceph:
+- openssl_keys:
+- rgw:
+ client.0:
+# valgrind: [--tool=memcheck, --max-threads=1024] # http://tracker.ceph.com/issues/25214
+
+overrides:
+ ceph:
+ conf:
+ global:
+ osd_min_pg_log_entries: 10
+ osd_max_pg_log_entries: 10
+ client:
+ rgw lc debug interval: 10
diff --git a/qa/suites/rgw/verify/tasks/cls.yaml b/qa/suites/rgw/verify/tasks/cls.yaml
new file mode 100644
index 00000000..88a8f9d2
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/cls.yaml
@@ -0,0 +1,8 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - cls/test_cls_lock.sh
+ - cls/test_cls_log.sh
+ - cls/test_cls_refcount.sh
+ - cls/test_cls_rgw.sh
diff --git a/qa/suites/rgw/verify/tasks/ragweed.yaml b/qa/suites/rgw/verify/tasks/ragweed.yaml
new file mode 100644
index 00000000..3e91afad
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/ragweed.yaml
@@ -0,0 +1,6 @@
+tasks:
+- ragweed:
+ client.0:
+ default-branch: ceph-nautilus
+ rgw_server: client.0
+ stages: prepare,check
diff --git a/qa/suites/rgw/verify/tasks/s3tests.yaml b/qa/suites/rgw/verify/tasks/s3tests.yaml
new file mode 100644
index 00000000..642aaf27
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/s3tests.yaml
@@ -0,0 +1,5 @@
+tasks:
+- s3tests:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
diff --git a/qa/suites/rgw/verify/tasks/swift.yaml b/qa/suites/rgw/verify/tasks/swift.yaml
new file mode 100644
index 00000000..4110d899
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/swift.yaml
@@ -0,0 +1,8 @@
+# py2 for swift until we move to py3
+os_type: ubuntu
+
+tasks:
+- swift:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
diff --git a/qa/suites/rgw/verify/validater/.qa b/qa/suites/rgw/verify/validater/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/rgw/verify/validater/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/verify/validater/lockdep.yaml b/qa/suites/rgw/verify/validater/lockdep.yaml
new file mode 100644
index 00000000..941fe12b
--- /dev/null
+++ b/qa/suites/rgw/verify/validater/lockdep.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ lockdep: true
+ mon:
+ lockdep: true
diff --git a/qa/suites/rgw/verify/validater/valgrind.yaml b/qa/suites/rgw/verify/validater/valgrind.yaml
new file mode 100644
index 00000000..e75dcc7b
--- /dev/null
+++ b/qa/suites/rgw/verify/validater/valgrind.yaml
@@ -0,0 +1,21 @@
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+#os_type: centos
+# ubuntu and no valgrind until we migrate test to py3
+os_type: ubuntu
+
+overrides:
+ install:
+ ceph:
+ conf:
+ global:
+ osd heartbeat grace: 40
+ mon:
+ mon osd crush smoke test: false
+ osd:
+ osd fast shutdown: false
+# valgrind:
+# mon: [--tool=memcheck, --leak-check=full, --show-reachable=yes]
+# osd: [--tool=memcheck]
+# mds: [--tool=memcheck]
+## https://tracker.ceph.com/issues/38621
+## mgr: [--tool=memcheck]
diff --git a/qa/suites/samba/% b/qa/suites/samba/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/samba/%
diff --git a/qa/suites/samba/.qa b/qa/suites/samba/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/samba/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/samba/clusters/.qa b/qa/suites/samba/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/samba/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/samba/clusters/samba-basic.yaml b/qa/suites/samba/clusters/samba-basic.yaml
new file mode 100644
index 00000000..af432f61
--- /dev/null
+++ b/qa/suites/samba/clusters/samba-basic.yaml
@@ -0,0 +1,7 @@
+roles:
+- [mon.a, mon.b, mon.c, mgr.x, mds.a, osd.0, osd.1]
+- [samba.0, client.0, client.1]
+openstack:
+- volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
diff --git a/qa/suites/samba/install/.qa b/qa/suites/samba/install/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/samba/install/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/samba/install/install.yaml b/qa/suites/samba/install/install.yaml
new file mode 100644
index 00000000..c53f9c55
--- /dev/null
+++ b/qa/suites/samba/install/install.yaml
@@ -0,0 +1,9 @@
+# we currently can't install Samba on RHEL; need a gitbuilder and code updates
+os_type: ubuntu
+
+tasks:
+- install:
+- install:
+ project: samba
+ extra_packages: ['samba']
+- ceph:
diff --git a/qa/suites/samba/mount/.qa b/qa/suites/samba/mount/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/samba/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/samba/mount/fuse.yaml b/qa/suites/samba/mount/fuse.yaml
new file mode 100644
index 00000000..d00ffdb4
--- /dev/null
+++ b/qa/suites/samba/mount/fuse.yaml
@@ -0,0 +1,6 @@
+tasks:
+- ceph-fuse: [client.0]
+- samba:
+ samba.0:
+ ceph: "{testdir}/mnt.0"
+
diff --git a/qa/suites/samba/mount/kclient.yaml b/qa/suites/samba/mount/kclient.yaml
new file mode 100644
index 00000000..8baa09f8
--- /dev/null
+++ b/qa/suites/samba/mount/kclient.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+kernel:
+ client:
+ branch: testing
+tasks:
+- kclient: [client.0]
+- samba:
+ samba.0:
+ ceph: "{testdir}/mnt.0"
+
diff --git a/qa/suites/samba/mount/native.yaml b/qa/suites/samba/mount/native.yaml
new file mode 100644
index 00000000..09b8c1c4
--- /dev/null
+++ b/qa/suites/samba/mount/native.yaml
@@ -0,0 +1,2 @@
+tasks:
+- samba:
diff --git a/qa/suites/samba/mount/noceph.yaml b/qa/suites/samba/mount/noceph.yaml
new file mode 100644
index 00000000..3cad4740
--- /dev/null
+++ b/qa/suites/samba/mount/noceph.yaml
@@ -0,0 +1,5 @@
+tasks:
+- localdir: [client.0]
+- samba:
+ samba.0:
+ ceph: "{testdir}/mnt.0"
diff --git a/qa/suites/samba/objectstore b/qa/suites/samba/objectstore
new file mode 120000
index 00000000..c40bd326
--- /dev/null
+++ b/qa/suites/samba/objectstore
@@ -0,0 +1 @@
+.qa/objectstore \ No newline at end of file
diff --git a/qa/suites/samba/workload/.qa b/qa/suites/samba/workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/samba/workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/samba/workload/cifs-dbench.yaml b/qa/suites/samba/workload/cifs-dbench.yaml
new file mode 100644
index 00000000..c13c1c09
--- /dev/null
+++ b/qa/suites/samba/workload/cifs-dbench.yaml
@@ -0,0 +1,8 @@
+tasks:
+- cifs-mount:
+ client.1:
+ share: ceph
+- workunit:
+ clients:
+ client.1:
+ - suites/dbench.sh
diff --git a/qa/suites/samba/workload/cifs-fsstress.yaml b/qa/suites/samba/workload/cifs-fsstress.yaml
new file mode 100644
index 00000000..ff003af3
--- /dev/null
+++ b/qa/suites/samba/workload/cifs-fsstress.yaml
@@ -0,0 +1,8 @@
+tasks:
+- cifs-mount:
+ client.1:
+ share: ceph
+- workunit:
+ clients:
+ client.1:
+ - suites/fsstress.sh
diff --git a/qa/suites/samba/workload/cifs-kernel-build.yaml.disabled b/qa/suites/samba/workload/cifs-kernel-build.yaml.disabled
new file mode 100644
index 00000000..ab9ff8ac
--- /dev/null
+++ b/qa/suites/samba/workload/cifs-kernel-build.yaml.disabled
@@ -0,0 +1,9 @@
+tasks:
+- cifs-mount:
+ client.1:
+ share: ceph
+- workunit:
+ clients:
+ client.1:
+ - kernel_untar_build.sh
+
diff --git a/qa/suites/samba/workload/smbtorture.yaml b/qa/suites/samba/workload/smbtorture.yaml
new file mode 100644
index 00000000..823489a2
--- /dev/null
+++ b/qa/suites/samba/workload/smbtorture.yaml
@@ -0,0 +1,39 @@
+tasks:
+- pexec:
+ client.1:
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.lock
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.fdpass
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.unlink
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.attr
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.trans2
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.negnowait
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.dir1
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.deny1
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.deny2
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.deny3
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.denydos
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.ntdeny1
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.ntdeny2
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.tcon
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.tcondev
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.vuid
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.rw1
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.open
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.defer_open
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.xcopy
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.rename
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.properties
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.mangle
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.openattr
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.chkpath
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.secleak
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.disconnect
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.samba3error
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.smb
+# - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.bench-holdcon
+# - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.bench-holdopen
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.bench-readwrite
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.bench-torture
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.scan-pipe_number
+ - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.scan-ioctl
+# - /usr/local/samba/bin/smbtorture --password=ubuntu //localhost/ceph base.scan-maxfid
diff --git a/qa/suites/smoke/.qa b/qa/suites/smoke/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/smoke/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/smoke/basic/% b/qa/suites/smoke/basic/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/smoke/basic/%
diff --git a/qa/suites/smoke/basic/.qa b/qa/suites/smoke/basic/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/smoke/basic/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/smoke/basic/clusters/+ b/qa/suites/smoke/basic/clusters/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/smoke/basic/clusters/+
diff --git a/qa/suites/smoke/basic/clusters/.qa b/qa/suites/smoke/basic/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/smoke/basic/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/smoke/basic/clusters/fixed-3-cephfs.yaml b/qa/suites/smoke/basic/clusters/fixed-3-cephfs.yaml
new file mode 120000
index 00000000..24480dfc
--- /dev/null
+++ b/qa/suites/smoke/basic/clusters/fixed-3-cephfs.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-3-cephfs.yaml \ No newline at end of file
diff --git a/qa/suites/smoke/basic/clusters/openstack.yaml b/qa/suites/smoke/basic/clusters/openstack.yaml
new file mode 100644
index 00000000..7d652b49
--- /dev/null
+++ b/qa/suites/smoke/basic/clusters/openstack.yaml
@@ -0,0 +1,8 @@
+openstack:
+ - machine:
+ disk: 40 # GB
+ ram: 8000 # MB
+ cpus: 1
+ volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
diff --git a/qa/suites/smoke/basic/objectstore/.qa b/qa/suites/smoke/basic/objectstore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/smoke/basic/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/smoke/basic/objectstore/bluestore-bitmap.yaml b/qa/suites/smoke/basic/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/smoke/basic/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/smoke/basic/tasks/.qa b/qa/suites/smoke/basic/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/smoke/basic/tasks/cfuse_workunit_suites_blogbench.yaml b/qa/suites/smoke/basic/tasks/cfuse_workunit_suites_blogbench.yaml
new file mode 100644
index 00000000..2ee41772
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/cfuse_workunit_suites_blogbench.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- ceph-fuse:
+- workunit:
+ clients:
+ all:
+ - suites/blogbench.sh
diff --git a/qa/suites/smoke/basic/tasks/cfuse_workunit_suites_fsstress.yaml b/qa/suites/smoke/basic/tasks/cfuse_workunit_suites_fsstress.yaml
new file mode 100644
index 00000000..b58487c0
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/cfuse_workunit_suites_fsstress.yaml
@@ -0,0 +1,8 @@
+tasks:
+- install:
+- ceph:
+- ceph-fuse:
+- workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
diff --git a/qa/suites/smoke/basic/tasks/cfuse_workunit_suites_iozone.yaml b/qa/suites/smoke/basic/tasks/cfuse_workunit_suites_iozone.yaml
new file mode 100644
index 00000000..dc6df2f7
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/cfuse_workunit_suites_iozone.yaml
@@ -0,0 +1,8 @@
+tasks:
+- install:
+- ceph:
+- ceph-fuse: [client.0]
+- workunit:
+ clients:
+ all:
+ - suites/iozone.sh
diff --git a/qa/suites/smoke/basic/tasks/cfuse_workunit_suites_pjd.yaml b/qa/suites/smoke/basic/tasks/cfuse_workunit_suites_pjd.yaml
new file mode 100644
index 00000000..a76154d1
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/cfuse_workunit_suites_pjd.yaml
@@ -0,0 +1,18 @@
+tasks:
+- install:
+- ceph:
+ fs: xfs
+ conf:
+ mds:
+ debug mds: 20
+ debug ms: 1
+ client:
+ debug client: 20
+ debug ms: 1
+ fuse default permissions: false
+ fuse set user groups: true
+- ceph-fuse:
+- workunit:
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/smoke/basic/tasks/kclient_workunit_direct_io.yaml b/qa/suites/smoke/basic/tasks/kclient_workunit_direct_io.yaml
new file mode 100644
index 00000000..21820071
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/kclient_workunit_direct_io.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+tasks:
+- install:
+- ceph:
+- kclient:
+- workunit:
+ clients:
+ all:
+ - direct_io
diff --git a/qa/suites/smoke/basic/tasks/kclient_workunit_suites_dbench.yaml b/qa/suites/smoke/basic/tasks/kclient_workunit_suites_dbench.yaml
new file mode 100644
index 00000000..01d7470a
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/kclient_workunit_suites_dbench.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- kclient:
+- workunit:
+ clients:
+ all:
+ - suites/dbench.sh
diff --git a/qa/suites/smoke/basic/tasks/kclient_workunit_suites_fsstress.yaml b/qa/suites/smoke/basic/tasks/kclient_workunit_suites_fsstress.yaml
new file mode 100644
index 00000000..42d6b97c
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/kclient_workunit_suites_fsstress.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- kclient:
+- workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
diff --git a/qa/suites/smoke/basic/tasks/kclient_workunit_suites_pjd.yaml b/qa/suites/smoke/basic/tasks/kclient_workunit_suites_pjd.yaml
new file mode 100644
index 00000000..6818a2a6
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/kclient_workunit_suites_pjd.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- kclient:
+- workunit:
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/smoke/basic/tasks/libcephfs_interface_tests.yaml b/qa/suites/smoke/basic/tasks/libcephfs_interface_tests.yaml
new file mode 100644
index 00000000..aa2e7679
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/libcephfs_interface_tests.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ debug ms: 1
+ debug client: 20
+ mds:
+ debug ms: 1
+ debug mds: 20
+tasks:
+- install:
+- ceph:
+- ceph-fuse:
+- workunit:
+ clients:
+ client.0:
+ - libcephfs/test.sh
diff --git a/qa/suites/smoke/basic/tasks/mon_thrash.yaml b/qa/suites/smoke/basic/tasks/mon_thrash.yaml
new file mode 100644
index 00000000..edaa0dd2
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/mon_thrash.yaml
@@ -0,0 +1,36 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - reached quota
+ - mons down
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(POOL_
+ - \(CACHE_POOL_
+ - \(SMALLER_PGP_NUM\)
+ - \(OBJECT_
+ - \(SLOW_OPS\)
+ - \(TOO_FEW_PGS\)
+ - \(OSD_SLOW_PING_TIME
+ - slow request
+ conf:
+ global:
+ ms inject delay max: 1
+ ms inject delay probability: 0.005
+ ms inject delay type: mon
+ ms inject internal delays: 0.002
+ ms inject socket failures: 2500
+tasks:
+- install: null
+- ceph:
+ fs: xfs
+- mon_thrash:
+ revive_delay: 90
+ thrash_delay: 1
+ thrash_many: true
+- workunit:
+ clients:
+ client.0:
+ - rados/test.sh
diff --git a/qa/suites/smoke/basic/tasks/rados_api_tests.yaml b/qa/suites/smoke/basic/tasks/rados_api_tests.yaml
new file mode 100644
index 00000000..3c772481
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rados_api_tests.yaml
@@ -0,0 +1,30 @@
+tasks:
+- install: null
+- ceph:
+ fs: ext4
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(POOL_
+ - \(CACHE_POOL_
+ - \(SMALLER_PGP_NUM\)
+ - \(OBJECT_
+ - \(SLOW_OPS\)
+ - \(TOO_FEW_PGS\)
+ - reached quota
+ - but it is still running
+ - slow request
+ conf:
+ mon:
+ mon warn on pool no app: false
+- thrashosds:
+ chance_pgnum_grow: 2
+ chance_pgnum_shrink: 2
+ chance_pgpnum_fix: 1
+ timeout: 1200
+- workunit:
+ clients:
+ client.0:
+ - rados/test.sh
diff --git a/qa/suites/smoke/basic/tasks/rados_bench.yaml b/qa/suites/smoke/basic/tasks/rados_bench.yaml
new file mode 100644
index 00000000..ff0e2bbd
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rados_bench.yaml
@@ -0,0 +1,47 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject delay max: 1
+ ms inject delay probability: 0.005
+ ms inject delay type: osd
+ ms inject internal delays: 0.002
+ ms inject socket failures: 2500
+tasks:
+- install: null
+- ceph:
+ fs: xfs
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(POOL_
+ - \(CACHE_POOL_
+ - \(SMALLER_PGP_NUM\)
+ - \(OBJECT_
+ - \(SLOW_OPS\)
+ - \(TOO_FEW_PGS\)
+ - \(OSD_SLOW_PING_TIME
+ - slow request
+- thrashosds:
+ chance_pgnum_grow: 2
+ chance_pgnum_shrink: 2
+ chance_pgpnum_fix: 1
+ timeout: 1200
+- full_sequential:
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
diff --git a/qa/suites/smoke/basic/tasks/rados_cache_snaps.yaml b/qa/suites/smoke/basic/tasks/rados_cache_snaps.yaml
new file mode 100644
index 00000000..f34d3b83
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rados_cache_snaps.yaml
@@ -0,0 +1,51 @@
+tasks:
+- install: null
+- ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(POOL_
+ - \(CACHE_POOL_
+ - \(SMALLER_PGP_NUM\)
+ - \(OBJECT_
+ - \(SLOW_OPS\)
+ - \(TOO_FEW_PGS\)
+ - slow request
+- thrashosds:
+ chance_pgnum_grow: 2
+ chance_pgnum_shrink: 2
+ chance_pgpnum_fix: 1
+ timeout: 1200
+- exec:
+ client.0:
+ - sudo ceph osd pool create base 4
+ - sudo ceph osd pool application enable base rados
+ - sudo ceph osd pool create cache 4
+ - sudo ceph osd tier add base cache
+ - sudo ceph osd tier cache-mode cache writeback
+ - sudo ceph osd tier set-overlay base cache
+ - sudo ceph osd pool set cache hit_set_type bloom
+ - sudo ceph osd pool set cache hit_set_count 8
+ - sudo ceph osd pool set cache hit_set_period 3600
+ - sudo ceph osd pool set cache target_max_objects 250
+- rados:
+ clients:
+ - client.0
+ objects: 500
+ op_weights:
+ copy_from: 50
+ delete: 50
+ cache_evict: 50
+ cache_flush: 50
+ read: 100
+ rollback: 50
+ snap_create: 50
+ snap_remove: 50
+ cache_try_flush: 50
+ write: 100
+ ops: 4000
+ pool_snaps: true
+ pools:
+ - base
diff --git a/qa/suites/smoke/basic/tasks/rados_cls_all.yaml b/qa/suites/smoke/basic/tasks/rados_cls_all.yaml
new file mode 100644
index 00000000..5f46a1ab
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rados_cls_all.yaml
@@ -0,0 +1,16 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd_class_load_list: "cephfs hello journal lock log numops rbd refcount
+ rgw sdk timeindex user version"
+ osd_class_default_list: "cephfs hello journal lock log numops rbd refcount
+ rgw sdk timeindex user version"
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- workunit:
+ clients:
+ client.0:
+ - cls
diff --git a/qa/suites/smoke/basic/tasks/rados_ec_snaps.yaml b/qa/suites/smoke/basic/tasks/rados_ec_snaps.yaml
new file mode 100644
index 00000000..3e87eefb
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rados_ec_snaps.yaml
@@ -0,0 +1,41 @@
+tasks:
+- install: null
+- ceph:
+ fs: xfs
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(POOL_
+ - \(CACHE_POOL_
+ - \(SMALLER_PGP_NUM\)
+ - \(OBJECT_
+ - \(SLOW_OPS\)
+ - \(TOO_FEW_PGS\)
+ - slow request
+- thrashosds:
+ chance_pgnum_grow: 3
+ chance_pgnum_shrink: 2
+ chance_pgpnum_fix: 1
+ timeout: 1200
+- rados:
+ clients:
+ - client.0
+ ec_pool: true
+ max_in_flight: 64
+ max_seconds: 600
+ objects: 1024
+ op_weights:
+ append: 100
+ copy_from: 50
+ delete: 50
+ read: 100
+ rmattr: 25
+ rollback: 50
+ setattr: 25
+ snap_create: 50
+ snap_remove: 50
+ write: 0
+ ops: 400000
+ size: 16384
diff --git a/qa/suites/smoke/basic/tasks/rados_python.yaml b/qa/suites/smoke/basic/tasks/rados_python.yaml
new file mode 100644
index 00000000..2a802cd6
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rados_python.yaml
@@ -0,0 +1,16 @@
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(PG_
+ - \(OSD_
+ - \(OBJECT_
+ - \(POOL_APP_NOT_ENABLED\)
+- ceph-fuse:
+- workunit:
+ clients:
+ client.0:
+ - rados/test_python.sh
diff --git a/qa/suites/smoke/basic/tasks/rados_workunit_loadgen_mix.yaml b/qa/suites/smoke/basic/tasks/rados_workunit_loadgen_mix.yaml
new file mode 100644
index 00000000..5e82e984
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rados_workunit_loadgen_mix.yaml
@@ -0,0 +1,13 @@
+tasks:
+- install:
+- ceph:
+ fs: ext4
+ log-whitelist:
+ - but it is still running
+ - overall HEALTH_
+ - \(POOL_APP_NOT_ENABLED\)
+- ceph-fuse:
+- workunit:
+ clients:
+ all:
+ - rados/load-gen-mix.sh
diff --git a/qa/suites/smoke/basic/tasks/rbd_api_tests.yaml b/qa/suites/smoke/basic/tasks/rbd_api_tests.yaml
new file mode 100644
index 00000000..f7245bab
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rbd_api_tests.yaml
@@ -0,0 +1,18 @@
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(POOL_
+ - \(CACHE_POOL_
+ fs: xfs
+- ceph-fuse:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ env:
+ RBD_FEATURES: "1"
diff --git a/qa/suites/smoke/basic/tasks/rbd_cli_import_export.yaml b/qa/suites/smoke/basic/tasks/rbd_cli_import_export.yaml
new file mode 100644
index 00000000..e9f38d3a
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rbd_cli_import_export.yaml
@@ -0,0 +1,11 @@
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- ceph-fuse:
+- workunit:
+ clients:
+ client.0:
+ - rbd/import_export.sh
+ env:
+ RBD_CREATE_ARGS: --new-format
diff --git a/qa/suites/smoke/basic/tasks/rbd_fsx.yaml b/qa/suites/smoke/basic/tasks/rbd_fsx.yaml
new file mode 100644
index 00000000..59345670
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rbd_fsx.yaml
@@ -0,0 +1,30 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(OSDMAP_FLAGS\)
+ - \(OSD_
+ - \(PG_
+ - \(POOL_
+ - \(CACHE_POOL_
+ - \(SMALLER_PGP_NUM\)
+ - \(OBJECT_
+ - \(SLOW_OPS\)
+ - \(TOO_FEW_PGS\)
+ - \(OSD_SLOW_PING_TIME
+ - slow request
+ conf:
+ client:
+ rbd cache: true
+ global:
+ ms inject socket failures: 5000
+tasks:
+- install: null
+- ceph:
+ fs: xfs
+- thrashosds:
+ timeout: 1200
+- rbd_fsx:
+ clients:
+ - client.0
+ ops: 2000
diff --git a/qa/suites/smoke/basic/tasks/rbd_python_api_tests.yaml b/qa/suites/smoke/basic/tasks/rbd_python_api_tests.yaml
new file mode 100644
index 00000000..9714a6e4
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rbd_python_api_tests.yaml
@@ -0,0 +1,10 @@
+tasks:
+- install:
+- ceph:
+- ceph-fuse:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
+ env:
+ RBD_FEATURES: "1"
diff --git a/qa/suites/smoke/basic/tasks/rbd_workunit_suites_iozone.yaml b/qa/suites/smoke/basic/tasks/rbd_workunit_suites_iozone.yaml
new file mode 100644
index 00000000..237aa4b3
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rbd_workunit_suites_iozone.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+ client:
+ rbd default features: 5
+tasks:
+- install:
+- ceph:
+- rbd:
+ all:
+ image_size: 20480
+- workunit:
+ clients:
+ all:
+ - suites/iozone.sh
diff --git a/qa/suites/smoke/basic/tasks/rgw_ec_s3tests.yaml b/qa/suites/smoke/basic/tasks/rgw_ec_s3tests.yaml
new file mode 100644
index 00000000..3871cf53
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rgw_ec_s3tests.yaml
@@ -0,0 +1,20 @@
+overrides:
+ rgw:
+ ec-data-pool: true
+ cache-pools: true
+ frontend: civetweb
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- s3tests:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw lc debug interval: 10
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo= testkey-2=aWIKTWFrZWZpbGUKbWFuCm91dApzcmMKVGVzdGluZwo=
+ rgw crypt require ssl: false
diff --git a/qa/suites/smoke/basic/tasks/rgw_s3tests.yaml b/qa/suites/smoke/basic/tasks/rgw_s3tests.yaml
new file mode 100644
index 00000000..011f34a4
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rgw_s3tests.yaml
@@ -0,0 +1,16 @@
+tasks:
+- install:
+- ceph:
+ fs: xfs
+- rgw: [client.0]
+- s3tests:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw lc debug interval: 10
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo= testkey-2=aWIKTWFrZWZpbGUKbWFuCm91dApzcmMKVGVzdGluZwo=
+ rgw crypt require ssl: false
diff --git a/qa/suites/smoke/basic/tasks/rgw_swift.yaml b/qa/suites/smoke/basic/tasks/rgw_swift.yaml
new file mode 100644
index 00000000..2db995b0
--- /dev/null
+++ b/qa/suites/smoke/basic/tasks/rgw_swift.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+ fs: ext4
+- rgw: [client.0]
+- swift:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
diff --git a/qa/suites/stress/.qa b/qa/suites/stress/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/stress/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/stress/bench/% b/qa/suites/stress/bench/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/stress/bench/%
diff --git a/qa/suites/stress/bench/.qa b/qa/suites/stress/bench/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/stress/bench/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/stress/bench/clusters/.qa b/qa/suites/stress/bench/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/stress/bench/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/stress/bench/clusters/fixed-3-cephfs.yaml b/qa/suites/stress/bench/clusters/fixed-3-cephfs.yaml
new file mode 120000
index 00000000..24480dfc
--- /dev/null
+++ b/qa/suites/stress/bench/clusters/fixed-3-cephfs.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-3-cephfs.yaml \ No newline at end of file
diff --git a/qa/suites/stress/bench/tasks/.qa b/qa/suites/stress/bench/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/stress/bench/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/stress/bench/tasks/cfuse_workunit_snaps.yaml b/qa/suites/stress/bench/tasks/cfuse_workunit_snaps.yaml
new file mode 100644
index 00000000..eafec39e
--- /dev/null
+++ b/qa/suites/stress/bench/tasks/cfuse_workunit_snaps.yaml
@@ -0,0 +1,8 @@
+tasks:
+- install:
+- ceph:
+- ceph-fuse:
+- workunit:
+ clients:
+ all:
+ - snaps
diff --git a/qa/suites/stress/bench/tasks/kclient_workunit_suites_fsx.yaml b/qa/suites/stress/bench/tasks/kclient_workunit_suites_fsx.yaml
new file mode 100644
index 00000000..a0d2e765
--- /dev/null
+++ b/qa/suites/stress/bench/tasks/kclient_workunit_suites_fsx.yaml
@@ -0,0 +1,8 @@
+tasks:
+- install:
+- ceph:
+- kclient:
+- workunit:
+ clients:
+ all:
+ - suites/fsx.sh
diff --git a/qa/suites/stress/thrash/% b/qa/suites/stress/thrash/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/stress/thrash/%
diff --git a/qa/suites/stress/thrash/.qa b/qa/suites/stress/thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/stress/thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/stress/thrash/clusters/.qa b/qa/suites/stress/thrash/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/stress/thrash/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/stress/thrash/clusters/16-osd.yaml b/qa/suites/stress/thrash/clusters/16-osd.yaml
new file mode 100644
index 00000000..76232339
--- /dev/null
+++ b/qa/suites/stress/thrash/clusters/16-osd.yaml
@@ -0,0 +1,18 @@
+roles:
+- [mon.a, mds.a, osd.0]
+- [mon.b, mgr.x, osd.1]
+- [mon.c, mgr.y, osd.2]
+- [osd.3]
+- [osd.4]
+- [osd.5]
+- [osd.6]
+- [osd.7]
+- [osd.8]
+- [osd.9]
+- [osd.10]
+- [osd.11]
+- [osd.12]
+- [osd.13]
+- [osd.14]
+- [osd.15]
+- [client.0]
diff --git a/qa/suites/stress/thrash/clusters/3-osd-1-machine.yaml b/qa/suites/stress/thrash/clusters/3-osd-1-machine.yaml
new file mode 100644
index 00000000..8c3556ae
--- /dev/null
+++ b/qa/suites/stress/thrash/clusters/3-osd-1-machine.yaml
@@ -0,0 +1,3 @@
+roles:
+- [mon.a, mgr.x, mds.a, osd.0, osd.1, osd.2]
+- [mon.b, mon.c, client.0]
diff --git a/qa/suites/stress/thrash/clusters/8-osd.yaml b/qa/suites/stress/thrash/clusters/8-osd.yaml
new file mode 100644
index 00000000..9f51c6ba
--- /dev/null
+++ b/qa/suites/stress/thrash/clusters/8-osd.yaml
@@ -0,0 +1,10 @@
+roles:
+- [mon.a, mds.a, osd.0]
+- [mon.b, mgr.x, osd.1]
+- [mon.c, osd.2]
+- [osd.3]
+- [osd.4]
+- [osd.5]
+- [osd.6]
+- [osd.7]
+- [client.0]
diff --git a/qa/suites/stress/thrash/thrashers/.qa b/qa/suites/stress/thrash/thrashers/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/stress/thrash/thrashers/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/stress/thrash/thrashers/default.yaml b/qa/suites/stress/thrash/thrashers/default.yaml
new file mode 100644
index 00000000..e628ba6d
--- /dev/null
+++ b/qa/suites/stress/thrash/thrashers/default.yaml
@@ -0,0 +1,7 @@
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+- thrashosds:
diff --git a/qa/suites/stress/thrash/thrashers/fast.yaml b/qa/suites/stress/thrash/thrashers/fast.yaml
new file mode 100644
index 00000000..6bc9dff0
--- /dev/null
+++ b/qa/suites/stress/thrash/thrashers/fast.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+- thrashosds:
+ op_delay: 1
+ chance_down: 10
diff --git a/qa/suites/stress/thrash/thrashers/more-down.yaml b/qa/suites/stress/thrash/thrashers/more-down.yaml
new file mode 100644
index 00000000..6042bf6d
--- /dev/null
+++ b/qa/suites/stress/thrash/thrashers/more-down.yaml
@@ -0,0 +1,8 @@
+tasks:
+- install:
+- ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+- thrashosds:
+ chance_down: 50
diff --git a/qa/suites/stress/thrash/workloads/.qa b/qa/suites/stress/thrash/workloads/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/stress/thrash/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/stress/thrash/workloads/bonnie_cfuse.yaml b/qa/suites/stress/thrash/workloads/bonnie_cfuse.yaml
new file mode 100644
index 00000000..912f12d6
--- /dev/null
+++ b/qa/suites/stress/thrash/workloads/bonnie_cfuse.yaml
@@ -0,0 +1,6 @@
+tasks:
+- ceph-fuse:
+- workunit:
+ clients:
+ all:
+ - suites/bonnie.sh
diff --git a/qa/suites/stress/thrash/workloads/iozone_cfuse.yaml b/qa/suites/stress/thrash/workloads/iozone_cfuse.yaml
new file mode 100644
index 00000000..18a6051b
--- /dev/null
+++ b/qa/suites/stress/thrash/workloads/iozone_cfuse.yaml
@@ -0,0 +1,6 @@
+tasks:
+- ceph-fuse:
+- workunit:
+ clients:
+ all:
+ - suites/iozone.sh
diff --git a/qa/suites/stress/thrash/workloads/radosbench.yaml b/qa/suites/stress/thrash/workloads/radosbench.yaml
new file mode 100644
index 00000000..3940870f
--- /dev/null
+++ b/qa/suites/stress/thrash/workloads/radosbench.yaml
@@ -0,0 +1,4 @@
+tasks:
+- radosbench:
+ clients: [client.0]
+ time: 1800
diff --git a/qa/suites/stress/thrash/workloads/readwrite.yaml b/qa/suites/stress/thrash/workloads/readwrite.yaml
new file mode 100644
index 00000000..c53e52b0
--- /dev/null
+++ b/qa/suites/stress/thrash/workloads/readwrite.yaml
@@ -0,0 +1,9 @@
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ op_weights:
+ read: 45
+ write: 45
+ delete: 10
diff --git a/qa/suites/teuthology/.qa b/qa/suites/teuthology/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/buildpackages/% b/qa/suites/teuthology/buildpackages/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/teuthology/buildpackages/%
diff --git a/qa/suites/teuthology/buildpackages/.qa b/qa/suites/teuthology/buildpackages/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/buildpackages/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/buildpackages/supported-all-distro b/qa/suites/teuthology/buildpackages/supported-all-distro
new file mode 120000
index 00000000..ca82dde5
--- /dev/null
+++ b/qa/suites/teuthology/buildpackages/supported-all-distro
@@ -0,0 +1 @@
+.qa/distros/supported-all-distro \ No newline at end of file
diff --git a/qa/suites/teuthology/buildpackages/tasks/.qa b/qa/suites/teuthology/buildpackages/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/buildpackages/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/buildpackages/tasks/branch.yaml b/qa/suites/teuthology/buildpackages/tasks/branch.yaml
new file mode 100644
index 00000000..1dad96f3
--- /dev/null
+++ b/qa/suites/teuthology/buildpackages/tasks/branch.yaml
@@ -0,0 +1,10 @@
+roles:
+ - [mon.a, mgr.x, client.0]
+tasks:
+ - install:
+ # branch has precedence over sha1
+ branch: hammer
+ sha1: e5b6eea91cc37434f78a987d2dd1d3edd4a23f3f # dumpling
+ - exec:
+ client.0:
+ - ceph --version | grep 'version 0.94'
diff --git a/qa/suites/teuthology/buildpackages/tasks/default.yaml b/qa/suites/teuthology/buildpackages/tasks/default.yaml
new file mode 100644
index 00000000..cb583c76
--- /dev/null
+++ b/qa/suites/teuthology/buildpackages/tasks/default.yaml
@@ -0,0 +1,14 @@
+roles:
+ - [client.0]
+tasks:
+ - install:
+ tag: v0.94.1
+ - exec:
+ client.0:
+ - ceph --version | grep 'version 0.94.1'
+ - install.upgrade:
+ client.0:
+ tag: v0.94.3
+ - exec:
+ client.0:
+ - ceph --version | grep 'version 0.94.3'
diff --git a/qa/suites/teuthology/buildpackages/tasks/tag.yaml b/qa/suites/teuthology/buildpackages/tasks/tag.yaml
new file mode 100644
index 00000000..2bfb8a99
--- /dev/null
+++ b/qa/suites/teuthology/buildpackages/tasks/tag.yaml
@@ -0,0 +1,11 @@
+roles:
+ - [mon.a, mgr.x, client.0]
+tasks:
+ - install:
+ # tag has precedence over branch and sha1
+ tag: v0.94.1
+ branch: firefly
+ sha1: e5b6eea91cc37434f78a987d2dd1d3edd4a23f3f # dumpling
+ - exec:
+ client.0:
+ - ceph --version | grep 'version 0.94.1'
diff --git a/qa/suites/teuthology/ceph/% b/qa/suites/teuthology/ceph/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/teuthology/ceph/%
diff --git a/qa/suites/teuthology/ceph/.qa b/qa/suites/teuthology/ceph/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/ceph/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/ceph/clusters/.qa b/qa/suites/teuthology/ceph/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/ceph/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/ceph/clusters/single.yaml b/qa/suites/teuthology/ceph/clusters/single.yaml
new file mode 100644
index 00000000..0c6a40d0
--- /dev/null
+++ b/qa/suites/teuthology/ceph/clusters/single.yaml
@@ -0,0 +1,2 @@
+roles:
+ - [mon.a, mgr.x, client.0]
diff --git a/qa/suites/teuthology/ceph/distros b/qa/suites/teuthology/ceph/distros
new file mode 120000
index 00000000..23d9e9be
--- /dev/null
+++ b/qa/suites/teuthology/ceph/distros
@@ -0,0 +1 @@
+.qa/distros/supported \ No newline at end of file
diff --git a/qa/suites/teuthology/ceph/tasks/.qa b/qa/suites/teuthology/ceph/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/ceph/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/ceph/tasks/teuthology.yaml b/qa/suites/teuthology/ceph/tasks/teuthology.yaml
new file mode 100644
index 00000000..00081c8a
--- /dev/null
+++ b/qa/suites/teuthology/ceph/tasks/teuthology.yaml
@@ -0,0 +1,3 @@
+tasks:
+ - install:
+ - tests:
diff --git a/qa/suites/teuthology/integration.yaml b/qa/suites/teuthology/integration.yaml
new file mode 100644
index 00000000..8a7f1c77
--- /dev/null
+++ b/qa/suites/teuthology/integration.yaml
@@ -0,0 +1,2 @@
+tasks:
+- teuthology_integration:
diff --git a/qa/suites/teuthology/multi-cluster/% b/qa/suites/teuthology/multi-cluster/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/teuthology/multi-cluster/%
diff --git a/qa/suites/teuthology/multi-cluster/.qa b/qa/suites/teuthology/multi-cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/multi-cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/multi-cluster/all/.qa b/qa/suites/teuthology/multi-cluster/all/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/multi-cluster/all/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/multi-cluster/all/ceph.yaml b/qa/suites/teuthology/multi-cluster/all/ceph.yaml
new file mode 100644
index 00000000..4659ef3d
--- /dev/null
+++ b/qa/suites/teuthology/multi-cluster/all/ceph.yaml
@@ -0,0 +1,25 @@
+roles:
+- - ceph.mon.a
+ - ceph.mon.b
+ - ceph.mgr.x
+ - backup.osd.0
+ - backup.osd.1
+ - backup.osd.2
+ - backup.client.0
+- - backup.mon.a
+ - backup.mgr.x
+ - ceph.osd.0
+ - ceph.osd.1
+ - ceph.osd.2
+ - ceph.client.0
+ - client.1
+ - osd.3
+tasks:
+- install:
+- ceph:
+ cluster: backup
+- ceph:
+- workunit:
+ clients:
+ ceph.client.0: [true.sh]
+ backup.client.0: [true.sh]
diff --git a/qa/suites/teuthology/multi-cluster/all/thrashosds.yaml b/qa/suites/teuthology/multi-cluster/all/thrashosds.yaml
new file mode 100644
index 00000000..52002f57
--- /dev/null
+++ b/qa/suites/teuthology/multi-cluster/all/thrashosds.yaml
@@ -0,0 +1,21 @@
+roles:
+- - backup.mon.a
+ - backup.mon.b
+ - backup.mgr.x
+ - backup.osd.0
+ - backup.osd.1
+ - backup.osd.2
+- - backup.mon.c
+ - backup.osd.3
+ - backup.osd.4
+ - backup.osd.5
+ - backup.client.0
+tasks:
+- install:
+- ceph:
+ cluster: backup
+- thrashosds:
+ cluster: backup
+- workunit:
+ clients:
+ all: [true.sh]
diff --git a/qa/suites/teuthology/multi-cluster/all/upgrade.yaml b/qa/suites/teuthology/multi-cluster/all/upgrade.yaml
new file mode 100644
index 00000000..42cd93b2
--- /dev/null
+++ b/qa/suites/teuthology/multi-cluster/all/upgrade.yaml
@@ -0,0 +1,51 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - failed to encode map
+ conf:
+ mon:
+ mon warn on legacy crush tunables: false
+roles:
+- - ceph.mon.a
+ - ceph.mon.b
+ - ceph.mgr.x
+ - backup.osd.0
+ - backup.osd.1
+ - backup.osd.2
+ - backup.client.0
+- - backup.mon.a
+ - backup.mgr.x
+ - ceph.osd.0
+ - ceph.osd.1
+ - ceph.osd.2
+ - ceph.client.0
+ - client.1
+ - osd.3
+tasks:
+- install:
+ branch: infernalis
+- ceph:
+ cluster: backup
+- ceph:
+- workunit:
+ clients:
+ backup.client.0: [true.sh]
+ ceph.client.0: [true.sh]
+- install.upgrade:
+ ceph.mon.a:
+ branch: jewel
+ backup.mon.a:
+ branch: jewel
+- ceph.restart: [ceph.mon.a, ceph.mon.b, ceph.osd.0, ceph.osd.1, ceph.osd.2, osd.3]
+- exec:
+ ceph.client.0:
+ - ceph --version | grep -F 'version 10.'
+ client.1:
+ - ceph --cluster backup --version | grep -F 'version 10.'
+ backup.client.0:
+ # cli upgraded
+ - ceph --cluster backup --id 0 --version | grep -F 'version 10.'
+ - ceph --version | grep -F 'version 10.'
+ # backup cluster mon not upgraded
+ - ceph --cluster backup --id 0 tell mon.a version | grep -F 'version 9.2.'
+ - ceph tell mon.a version | grep -F 'version 10.'
diff --git a/qa/suites/teuthology/multi-cluster/all/workunit.yaml b/qa/suites/teuthology/multi-cluster/all/workunit.yaml
new file mode 100644
index 00000000..b1288e38
--- /dev/null
+++ b/qa/suites/teuthology/multi-cluster/all/workunit.yaml
@@ -0,0 +1,23 @@
+roles:
+- - backup.mon.a
+ - backup.mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+ - backup.client.0
+- - mon.a
+ - mgr.x
+ - backup.osd.0
+ - backup.osd.1
+ - backup.osd.2
+ - client.1
+ - backup.client.1
+tasks:
+- install:
+- workunit:
+ clients:
+ all: [true.sh]
+- workunit:
+ clients:
+ backup.client.1: [true.sh]
diff --git a/qa/suites/teuthology/no-ceph/% b/qa/suites/teuthology/no-ceph/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/teuthology/no-ceph/%
diff --git a/qa/suites/teuthology/no-ceph/.qa b/qa/suites/teuthology/no-ceph/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/no-ceph/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/no-ceph/clusters/.qa b/qa/suites/teuthology/no-ceph/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/no-ceph/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/no-ceph/clusters/single.yaml b/qa/suites/teuthology/no-ceph/clusters/single.yaml
new file mode 100644
index 00000000..0c6a40d0
--- /dev/null
+++ b/qa/suites/teuthology/no-ceph/clusters/single.yaml
@@ -0,0 +1,2 @@
+roles:
+ - [mon.a, mgr.x, client.0]
diff --git a/qa/suites/teuthology/no-ceph/tasks/.qa b/qa/suites/teuthology/no-ceph/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/no-ceph/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/no-ceph/tasks/teuthology.yaml b/qa/suites/teuthology/no-ceph/tasks/teuthology.yaml
new file mode 100644
index 00000000..1391458b
--- /dev/null
+++ b/qa/suites/teuthology/no-ceph/tasks/teuthology.yaml
@@ -0,0 +1,2 @@
+tasks:
+ - tests:
diff --git a/qa/suites/teuthology/nop/% b/qa/suites/teuthology/nop/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/teuthology/nop/%
diff --git a/qa/suites/teuthology/nop/.qa b/qa/suites/teuthology/nop/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/nop/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/nop/all/.qa b/qa/suites/teuthology/nop/all/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/nop/all/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/nop/all/nop.yaml b/qa/suites/teuthology/nop/all/nop.yaml
new file mode 100644
index 00000000..4a5b227e
--- /dev/null
+++ b/qa/suites/teuthology/nop/all/nop.yaml
@@ -0,0 +1,3 @@
+tasks:
+ - nop:
+
diff --git a/qa/suites/teuthology/rgw/% b/qa/suites/teuthology/rgw/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/teuthology/rgw/%
diff --git a/qa/suites/teuthology/rgw/.qa b/qa/suites/teuthology/rgw/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/rgw/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/rgw/distros b/qa/suites/teuthology/rgw/distros
new file mode 120000
index 00000000..23d9e9be
--- /dev/null
+++ b/qa/suites/teuthology/rgw/distros
@@ -0,0 +1 @@
+.qa/distros/supported \ No newline at end of file
diff --git a/qa/suites/teuthology/rgw/tasks/.qa b/qa/suites/teuthology/rgw/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/rgw/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/rgw/tasks/s3tests-civetweb.yaml b/qa/suites/teuthology/rgw/tasks/s3tests-civetweb.yaml
new file mode 100644
index 00000000..00a82a70
--- /dev/null
+++ b/qa/suites/teuthology/rgw/tasks/s3tests-civetweb.yaml
@@ -0,0 +1,24 @@
+# this runs s3tests against rgw, using civetweb
+roles:
+- [mon.a, mon.c, osd.0, osd.1, osd.2, client.0]
+- [mon.b, mgr.x, osd.3, osd.4, osd.5, client.1]
+
+tasks:
+- install:
+ branch: master
+- ceph:
+- rgw: [client.0]
+- s3tests:
+ client.0:
+ rgw_server: client.0
+ force-branch: ceph-nautilus
+overrides:
+ ceph:
+ fs: xfs
+ conf:
+ client:
+ debug rgw: 20
+ rgw lc debug interval: 10
+ rgw:
+ ec-data-pool: false
+ frontend: civetweb
diff --git a/qa/suites/teuthology/rgw/tasks/s3tests-fastcgi.yaml b/qa/suites/teuthology/rgw/tasks/s3tests-fastcgi.yaml
new file mode 100644
index 00000000..8e923d00
--- /dev/null
+++ b/qa/suites/teuthology/rgw/tasks/s3tests-fastcgi.yaml
@@ -0,0 +1,24 @@
+# this runs s3tests against rgw, using mod_fastcgi
+roles:
+- [mon.a, mon.c, osd.0, osd.1, osd.2, client.0]
+- [mon.b, mgr.x, osd.3, osd.4, osd.5, client.1]
+
+tasks:
+- install:
+ branch: master
+- ceph:
+- rgw: [client.0]
+- s3tests:
+ client.0:
+ rgw_server: client.0
+ force-branch: ceph-nautilus
+overrides:
+ ceph:
+ fs: xfs
+ conf:
+ client:
+ debug rgw: 20
+ rgw lc debug interval: 10
+ rgw:
+ ec-data-pool: false
+ frontend: apache
diff --git a/qa/suites/teuthology/rgw/tasks/s3tests-fcgi.yaml b/qa/suites/teuthology/rgw/tasks/s3tests-fcgi.yaml
new file mode 100644
index 00000000..d03248c2
--- /dev/null
+++ b/qa/suites/teuthology/rgw/tasks/s3tests-fcgi.yaml
@@ -0,0 +1,26 @@
+# this runs s3tests against rgw, using mod_proxy_fcgi
+# the choice between uds or tcp with mod_proxy_fcgi depends on the distro
+roles:
+- [mon.a, mon.c, osd.0, osd.1, osd.2, client.0]
+- [mon.b, mgr.x, osd.3, osd.4, osd.5, client.1]
+
+tasks:
+- install:
+ branch: master
+- ceph:
+- rgw: [client.0]
+- s3tests:
+ client.0:
+ rgw_server: client.0
+ force-branch: ceph-nautilus
+overrides:
+ ceph:
+ fs: xfs
+ conf:
+ client:
+ debug rgw: 20
+ rgw lc debug interval: 10
+ rgw:
+ ec-data-pool: false
+ frontend: apache
+ use_fcgi: true
diff --git a/qa/suites/teuthology/workunits/.qa b/qa/suites/teuthology/workunits/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/teuthology/workunits/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/teuthology/workunits/yes.yaml b/qa/suites/teuthology/workunits/yes.yaml
new file mode 100644
index 00000000..45098dbb
--- /dev/null
+++ b/qa/suites/teuthology/workunits/yes.yaml
@@ -0,0 +1,8 @@
+roles:
+ - [client.0]
+tasks:
+- install:
+- workunit:
+ clients:
+ all:
+ - true.sh
diff --git a/qa/suites/tgt/.qa b/qa/suites/tgt/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/tgt/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/tgt/basic/% b/qa/suites/tgt/basic/%
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/qa/suites/tgt/basic/%
@@ -0,0 +1 @@
+
diff --git a/qa/suites/tgt/basic/.qa b/qa/suites/tgt/basic/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/tgt/basic/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/tgt/basic/clusters/.qa b/qa/suites/tgt/basic/clusters/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/tgt/basic/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/tgt/basic/clusters/fixed-3.yaml b/qa/suites/tgt/basic/clusters/fixed-3.yaml
new file mode 100644
index 00000000..5e23c9e4
--- /dev/null
+++ b/qa/suites/tgt/basic/clusters/fixed-3.yaml
@@ -0,0 +1,4 @@
+roles:
+- [mon.a, mon.c, osd.0, osd.1, osd.2]
+- [mon.b, mgr.x, mds.a, osd.3, osd.4, osd.5]
+- [client.0]
diff --git a/qa/suites/tgt/basic/msgr-failures/.qa b/qa/suites/tgt/basic/msgr-failures/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/tgt/basic/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/tgt/basic/msgr-failures/few.yaml b/qa/suites/tgt/basic/msgr-failures/few.yaml
new file mode 100644
index 00000000..4326fe23
--- /dev/null
+++ b/qa/suites/tgt/basic/msgr-failures/few.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/tgt/basic/msgr-failures/many.yaml b/qa/suites/tgt/basic/msgr-failures/many.yaml
new file mode 100644
index 00000000..4caedaeb
--- /dev/null
+++ b/qa/suites/tgt/basic/msgr-failures/many.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 500
+ log-whitelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/tgt/basic/tasks/.qa b/qa/suites/tgt/basic/tasks/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/tgt/basic/tasks/blogbench.yaml b/qa/suites/tgt/basic/tasks/blogbench.yaml
new file mode 100644
index 00000000..f77a78b6
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/blogbench.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/blogbench.sh
diff --git a/qa/suites/tgt/basic/tasks/bonnie.yaml b/qa/suites/tgt/basic/tasks/bonnie.yaml
new file mode 100644
index 00000000..2cbfcf88
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/bonnie.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/bonnie.sh
diff --git a/qa/suites/tgt/basic/tasks/dbench-short.yaml b/qa/suites/tgt/basic/tasks/dbench-short.yaml
new file mode 100644
index 00000000..fcb721a4
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/dbench-short.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/dbench-short.sh
diff --git a/qa/suites/tgt/basic/tasks/dbench.yaml b/qa/suites/tgt/basic/tasks/dbench.yaml
new file mode 100644
index 00000000..7f732175
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/dbench.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/dbench.sh
diff --git a/qa/suites/tgt/basic/tasks/ffsb.yaml b/qa/suites/tgt/basic/tasks/ffsb.yaml
new file mode 100644
index 00000000..f50a3a19
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/ffsb.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/ffsb.sh
diff --git a/qa/suites/tgt/basic/tasks/fio.yaml b/qa/suites/tgt/basic/tasks/fio.yaml
new file mode 100644
index 00000000..e7346ce5
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/fio.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/fio.sh
diff --git a/qa/suites/tgt/basic/tasks/fsstress.yaml b/qa/suites/tgt/basic/tasks/fsstress.yaml
new file mode 100644
index 00000000..c77f511c
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/fsstress.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
diff --git a/qa/suites/tgt/basic/tasks/fsx.yaml b/qa/suites/tgt/basic/tasks/fsx.yaml
new file mode 100644
index 00000000..04732c84
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/fsx.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/fsx.sh
diff --git a/qa/suites/tgt/basic/tasks/fsync-tester.yaml b/qa/suites/tgt/basic/tasks/fsync-tester.yaml
new file mode 100644
index 00000000..ea627b7d
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/fsync-tester.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/fsync-tester.sh
diff --git a/qa/suites/tgt/basic/tasks/iogen.yaml b/qa/suites/tgt/basic/tasks/iogen.yaml
new file mode 100644
index 00000000..1065c74d
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/iogen.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/iogen.sh
diff --git a/qa/suites/tgt/basic/tasks/iozone-sync.yaml b/qa/suites/tgt/basic/tasks/iozone-sync.yaml
new file mode 100644
index 00000000..ac241a41
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/iozone-sync.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/iozone-sync.sh
diff --git a/qa/suites/tgt/basic/tasks/iozone.yaml b/qa/suites/tgt/basic/tasks/iozone.yaml
new file mode 100644
index 00000000..cf5604c2
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/iozone.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/iozone.sh
diff --git a/qa/suites/tgt/basic/tasks/pjd.yaml b/qa/suites/tgt/basic/tasks/pjd.yaml
new file mode 100644
index 00000000..ba5c631f
--- /dev/null
+++ b/qa/suites/tgt/basic/tasks/pjd.yaml
@@ -0,0 +1,9 @@
+tasks:
+- install:
+- ceph:
+- tgt:
+- iscsi:
+- workunit:
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/% b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/%
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/+ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/+
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/openstack.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/openstack.yaml
new file mode 100644
index 00000000..b0f3b9b4
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 30 # GB
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/start.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/start.yaml
new file mode 100644
index 00000000..93f3c471
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/start.yaml
@@ -0,0 +1,21 @@
+meta:
+- desc: |
+ Insatll and run ceph on one node,
+ with a separate client 1.
+ Upgrade client 1 to nautilus
+ Run tests against old cluster
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+ - mgr.x
+- - client.1
+overrides:
+ ceph:
+ log-whitelist:
+ - failed to encode map
+ fs: xfs
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml
new file mode 100644
index 00000000..36d6c19b
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml
@@ -0,0 +1,11 @@
+tasks:
+- install:
+ branch: nautilus
+ exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev','python34-cephfs','python34-rados']
+- print: "**** done install nautilus"
+- install.upgrade:
+ exclude_packages: ['ceph-test', 'ceph-test-dbg','libcephfs1', 'python-ceph']
+ client.1:
+- print: "**** done install.upgrade to -x on client.0"
+- ceph:
+- print: "**** done ceph task"
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/defaults.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/defaults.yaml
new file mode 100644
index 00000000..dff6623a
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/defaults.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default features: 61
+
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/layering.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/layering.yaml
new file mode 100644
index 00000000..5613d015
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/layering.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default features: 1
+
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml
new file mode 100644
index 00000000..68b4f51d
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml
@@ -0,0 +1,33 @@
+tasks:
+- parallel:
+ - workunit:
+ branch: nautilus
+ clients:
+ client.0:
+ - rbd/notify_master.sh
+ env:
+ RBD_FEATURES: "61"
+ - workunit:
+ branch: octopus
+ clients:
+ client.1:
+ - rbd/notify_slave.sh
+ env:
+ RBD_FEATURES: "61"
+- print: "**** done rbd: old librbd -> new librbd"
+- parallel:
+ - workunit:
+ branch: nautilus
+ clients:
+ client.0:
+ - rbd/notify_slave.sh
+ env:
+ RBD_FEATURES: "61"
+ - workunit:
+ branch: octopus
+ clients:
+ client.1:
+ - rbd/notify_master.sh
+ env:
+ RBD_FEATURES: "61"
+- print: "**** done rbd: new librbd -> old librbd"
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml
new file mode 120000
index 00000000..886e87fa
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml
@@ -0,0 +1 @@
+../../../../../../distros/all/ubuntu_18.04.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/.qa
new file mode 120000
index 00000000..a23f7e04
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/.qa
@@ -0,0 +1 @@
+../../.qa \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/% b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/%
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/+ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/+
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/openstack.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/openstack.yaml
new file mode 100644
index 00000000..b0f3b9b4
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 30 # GB
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/start.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/start.yaml
new file mode 100644
index 00000000..7774a2be
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/start.yaml
@@ -0,0 +1,23 @@
+meta:
+- desc: |
+ Insatll and run ceph on one node,
+ with a separate client 0.
+ Upgrade client 0 to nautilus
+ Run tests against old cluster
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - osd.0
+ - osd.1
+ - osd.2
+ - mgr.x
+- - client.0
+overrides:
+ ceph:
+ log-whitelist:
+ - failed to encode map
+ - CACHE_POOL_NO_HIT_SET
+ - POOL_APP_NOT_ENABLED
+ - application not enabled
+ fs: xfs
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/1-install/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/1-install/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/1-install/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/1-install/nautilus-client-x.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/1-install/nautilus-client-x.yaml
new file mode 100644
index 00000000..27a33e45
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/1-install/nautilus-client-x.yaml
@@ -0,0 +1,11 @@
+tasks:
+- install:
+ branch: nautilus
+ exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev','python34-cephfs','python34-rados']
+- print: "**** done install nautilus"
+upgrade_workload:
+ sequential:
+ - install.upgrade:
+ exclude_packages: ['ceph-test', 'ceph-test-dbg','libcephfs1']
+ client.0:
+ - print: "**** done install.upgrade to -x on client.0"
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/devstack-tempest-gate.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/devstack-tempest-gate.yaml
new file mode 100644
index 00000000..cb9ce29c
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/devstack-tempest-gate.yaml
@@ -0,0 +1,56 @@
+tasks:
+- sequential:
+ - upgrade_workload
+- ceph:
+- print: "**** done ceph"
+- qemu:
+ client.0:
+ type: filesystem
+ cpus: 4
+ memory: 12288
+ disks:
+ - image_size: 30720
+ - image_size: 30720
+ test: qa/workunits/rbd/run_devstack_tempest.sh
+ image_url: https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img
+ cloud_config_archive:
+ - type: text/cloud-config
+ content: |
+ users:
+ - name: stack
+ lock_passwd: False
+ shell: /bin/bash
+ sudo: ["ALL=(root) NOPASSWD:ALL\nDefaults:stack,tempest !requiretty"]
+ - name: tempest
+ lock_passwd: False
+ shell: /bin/bash
+ sudo:
+ - "ALL=(root) NOPASSWD:/sbin/ip"
+ - "ALL=(root) NOPASSWD:/sbin/iptables"
+ - "ALL=(root) NOPASSWD:/usr/bin/ovsdb-client"
+ - |
+ #!/bin/bash -ex
+ wget -q -O- "http://git.ceph.com/?p=ceph.git;a=blob_plain;f=keys/autobuild.asc" | apt-key add -
+ wget -q -O /etc/apt/sources.list.d/ceph.list "https://shaman.ceph.com/api/repos/ceph/{ceph_branch}/{ceph_sha1}/ubuntu/xenial/repo"
+ apt-get update
+
+ mount --bind /mnt/test_b /opt
+ mkdir /opt/stack
+ chown -R stack:stack /home/stack
+ chown -R stack:stack /opt/stack
+
+ mkdir /mnt/log/stack
+ chmod a+rwx /mnt/log/stack
+ chown -R stack:stack /mnt/log/stack
+
+ apt-get install -y ceph-common librbd1
+
+ mkdir /mnt/log/stack/ceph
+ chown -R stack:stack /mnt/log/stack/ceph
+ chmod a+rwx /mnt/log/stack/ceph
+
+ # sanity check that the cluster is reachable from the VM
+ echo '[client]' >> /etc/ceph/ceph.conf
+ echo 'log file = /mnt/log/stack/ceph/$name.$pid.log' >> /etc/ceph/ceph.conf
+ rbd --debug-ms=10 --debug-rbd=20 info client.0.1
+- print: "**** done qemu task!"
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/centos_7.6.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/centos_7.6.yaml
new file mode 120000
index 00000000..c336cfc6
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/centos_7.6.yaml
@@ -0,0 +1 @@
+../../../../../../distros/all/centos_7.6.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/rhel_7.6.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/rhel_7.6.yaml
new file mode 120000
index 00000000..4fd43cc0
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/rhel_7.6.yaml
@@ -0,0 +1 @@
+../../../../../../distros/all/rhel_7.6.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_16.04.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_16.04.yaml
new file mode 120000
index 00000000..9dc1ea99
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_16.04.yaml
@@ -0,0 +1 @@
+../../../../../../distros/all/ubuntu_16.04.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_18.04.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_18.04.yaml
new file mode 120000
index 00000000..886e87fa
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_18.04.yaml
@@ -0,0 +1 @@
+../../../../../../distros/all/ubuntu_18.04.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/% b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/%
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/+ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/+
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/openstack.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/openstack.yaml
new file mode 100644
index 00000000..b0f3b9b4
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 4
+ size: 30 # GB
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/start.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/start.yaml
new file mode 100644
index 00000000..93f3c471
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/start.yaml
@@ -0,0 +1,21 @@
+meta:
+- desc: |
+ Insatll and run ceph on one node,
+ with a separate client 1.
+ Upgrade client 1 to nautilus
+ Run tests against old cluster
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+ - mgr.x
+- - client.1
+overrides:
+ ceph:
+ log-whitelist:
+ - failed to encode map
+ fs: xfs
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml
new file mode 100644
index 00000000..1fa905e8
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml
@@ -0,0 +1,11 @@
+tasks:
+- install:
+ branch: nautilus
+ exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev','python34-cephfs','python34-rados']
+- print: "**** done install nautilus"
+- install.upgrade:
+ exclude_packages: ['ceph-test', 'ceph-test-dbg','libcephfs1']
+ client.1:
+- print: "**** done install.upgrade to -x on client.0"
+- ceph:
+- print: "**** done ceph task"
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/defaults.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/defaults.yaml
new file mode 100644
index 00000000..dff6623a
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/defaults.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default features: 61
+
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/layering.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/layering.yaml
new file mode 100644
index 00000000..5613d015
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/layering.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rbd default features: 1
+
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml
new file mode 100644
index 00000000..10c89021
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml
@@ -0,0 +1,21 @@
+tasks:
+- workunit:
+ branch: nautilus
+ clients:
+ client.0:
+ - rbd/notify_master.sh
+ client.1:
+ - rbd/notify_slave.sh
+ env:
+ RBD_FEATURES: "61"
+- print: "**** done rbd: old librbd -> new librbd"
+- workunit:
+ branch: nautilus
+ clients:
+ client.0:
+ - rbd/notify_slave.sh
+ client.1:
+ - rbd/notify_master.sh
+ env:
+ RBD_FEATURES: "61"
+- print: "**** done rbd: new librbd -> old librbd"
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/.qa b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/centos_7.6.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/centos_7.6.yaml
new file mode 120000
index 00000000..c336cfc6
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/centos_7.6.yaml
@@ -0,0 +1 @@
+../../../../../../distros/all/centos_7.6.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/rhel_7.6.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/rhel_7.6.yaml
new file mode 120000
index 00000000..4fd43cc0
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/rhel_7.6.yaml
@@ -0,0 +1 @@
+../../../../../../distros/all/rhel_7.6.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_16.04.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_16.04.yaml
new file mode 120000
index 00000000..9dc1ea99
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_16.04.yaml
@@ -0,0 +1 @@
+../../../../../../distros/all/ubuntu_16.04.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml
new file mode 120000
index 00000000..886e87fa
--- /dev/null
+++ b/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml
@@ -0,0 +1 @@
+../../../../../../distros/all/ubuntu_18.04.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/.qa b/qa/suites/upgrade/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/.qa b/qa/suites/upgrade/luminous-x/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/parallel/% b/qa/suites/upgrade/luminous-x/parallel/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/%
diff --git a/qa/suites/upgrade/luminous-x/parallel/.qa b/qa/suites/upgrade/luminous-x/parallel/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/parallel/0-cluster/+ b/qa/suites/upgrade/luminous-x/parallel/0-cluster/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/0-cluster/+
diff --git a/qa/suites/upgrade/luminous-x/parallel/0-cluster/.qa b/qa/suites/upgrade/luminous-x/parallel/0-cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/0-cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/parallel/0-cluster/openstack.yaml b/qa/suites/upgrade/luminous-x/parallel/0-cluster/openstack.yaml
new file mode 100644
index 00000000..f4d1349b
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/0-cluster/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 30 # GB
diff --git a/qa/suites/upgrade/luminous-x/parallel/0-cluster/start.yaml b/qa/suites/upgrade/luminous-x/parallel/0-cluster/start.yaml
new file mode 100644
index 00000000..b86ddcdc
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/0-cluster/start.yaml
@@ -0,0 +1,50 @@
+meta:
+- desc: |
+ Run ceph on two nodes,
+ with a separate client 0,1,2 third node.
+ Use xfs beneath the osds.
+ CephFS tests running on client 2,3
+roles:
+- - mon.a
+ - mgr.x
+ - mds.a
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+- - mon.b
+ - osd.4
+ - osd.5
+ - osd.6
+ - osd.7
+- - mon.c
+ - osd.8
+ - osd.9
+ - osd.10
+ - osd.11
+- - client.0
+ - client.1
+ - client.2
+ - client.3
+overrides:
+ ceph:
+ mon_bind_msgr2: false
+ mon_bind_addrvec: false
+ log-whitelist:
+ - scrub mismatch
+ - ScrubResult
+ - wrongly marked
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(SLOW_OPS\)
+ - overall HEALTH_
+ - slow request
+ - \(MON_MSGR2_NOT_ENABLED\)
+ conf:
+ global:
+ enable experimental unrecoverable data corrupting features: "*"
+ mon:
+ mon warn on osd down out interval zero: false
+ osd:
+ osd class load list: "*"
+ osd class default list: "*"
+ fs: xfs
diff --git a/qa/suites/upgrade/luminous-x/parallel/1-ceph-install/.qa b/qa/suites/upgrade/luminous-x/parallel/1-ceph-install/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/1-ceph-install/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/parallel/1-ceph-install/luminous.yaml b/qa/suites/upgrade/luminous-x/parallel/1-ceph-install/luminous.yaml
new file mode 100644
index 00000000..468d07c2
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/1-ceph-install/luminous.yaml
@@ -0,0 +1,54 @@
+meta:
+- desc: |
+ install ceph/luminous latest
+ run workload and upgrade-sequence in parallel
+ upgrade the client node
+tasks:
+- install:
+ branch: luminous
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-diskprediction-cloud
+ - ceph-mgr-rook
+ - ceph-mgr-ssh
+ extra_packages: ['librados2']
+- print: "**** done installing luminous"
+- ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ conf:
+ global:
+ mon warn on pool no app: false
+ bluestore_warn_on_legacy_statfs: false
+ mon pg warn min per osd: 0
+- exec:
+ osd.0:
+ - ceph osd require-osd-release luminous
+ - ceph osd set-require-min-compat-client luminous
+- print: "**** done ceph"
+- install.upgrade:
+ mon.a:
+ mon.b:
+ mon.c:
+- print: "**** done install.upgrade non-client hosts"
+- parallel:
+ - workload
+ - upgrade-sequence
+- print: "**** done parallel"
+- install.upgrade:
+ client.0:
+- print: "**** done install.upgrade on client.0"
diff --git a/qa/suites/upgrade/luminous-x/parallel/1.1-pg-log-overrides/normal_pg_log.yaml b/qa/suites/upgrade/luminous-x/parallel/1.1-pg-log-overrides/normal_pg_log.yaml
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/1.1-pg-log-overrides/normal_pg_log.yaml
@@ -0,0 +1 @@
+
diff --git a/qa/suites/upgrade/luminous-x/parallel/1.1-pg-log-overrides/short_pg_log.yaml b/qa/suites/upgrade/luminous-x/parallel/1.1-pg-log-overrides/short_pg_log.yaml
new file mode 100644
index 00000000..e31e37ba
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/1.1-pg-log-overrides/short_pg_log.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd min pg log entries: 1
+ osd max pg log entries: 2
diff --git a/qa/suites/upgrade/luminous-x/parallel/2-workload/+ b/qa/suites/upgrade/luminous-x/parallel/2-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/2-workload/+
diff --git a/qa/suites/upgrade/luminous-x/parallel/2-workload/.qa b/qa/suites/upgrade/luminous-x/parallel/2-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/2-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/parallel/2-workload/blogbench.yaml b/qa/suites/upgrade/luminous-x/parallel/2-workload/blogbench.yaml
new file mode 100644
index 00000000..021fcc68
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/2-workload/blogbench.yaml
@@ -0,0 +1,14 @@
+meta:
+- desc: |
+ run a cephfs stress test
+ mount ceph-fuse on client.2 before running workunit
+workload:
+ full_sequential:
+ - sequential:
+ - ceph-fuse:
+ - print: "**** done ceph-fuse 2-workload"
+ - workunit:
+ clients:
+ client.2:
+ - suites/blogbench.sh
+ - print: "**** done suites/blogbench.sh 2-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/2-workload/ec-rados-default.yaml b/qa/suites/upgrade/luminous-x/parallel/2-workload/ec-rados-default.yaml
new file mode 100644
index 00000000..5c5a9588
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/2-workload/ec-rados-default.yaml
@@ -0,0 +1,24 @@
+meta:
+- desc: |
+ run run randomized correctness test for rados operations
+ on an erasure-coded pool
+workload:
+ full_sequential:
+ - rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ ec_pool: true
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 0
+ append: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
+ setattr: 25
+ rmattr: 25
+ - print: "**** done rados ec task"
diff --git a/qa/suites/upgrade/luminous-x/parallel/2-workload/rados_api.yaml b/qa/suites/upgrade/luminous-x/parallel/2-workload/rados_api.yaml
new file mode 100644
index 00000000..e4cc9f96
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/2-workload/rados_api.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ object class functional tests
+workload:
+ full_sequential:
+ - workunit:
+ branch: luminous
+ clients:
+ client.0:
+ - cls
+ - print: "**** done cls 2-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/2-workload/rados_loadgenbig.yaml b/qa/suites/upgrade/luminous-x/parallel/2-workload/rados_loadgenbig.yaml
new file mode 100644
index 00000000..874a8c5e
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/2-workload/rados_loadgenbig.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ generate read/write load with rados objects ranging from 1MB to 25MB
+workload:
+ full_sequential:
+ - workunit:
+ branch: luminous
+ clients:
+ client.0:
+ - rados/load-gen-big.sh
+ - print: "**** done rados/load-gen-big.sh 2-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/2-workload/rgw_ragweed_prepare.yaml b/qa/suites/upgrade/luminous-x/parallel/2-workload/rgw_ragweed_prepare.yaml
new file mode 100644
index 00000000..b95711fe
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/2-workload/rgw_ragweed_prepare.yaml
@@ -0,0 +1,14 @@
+meta:
+- desc: |
+ rgw ragweed prepare
+workload:
+ full_sequential:
+ - sequential:
+ - rgw:
+ - client.1
+ - ragweed:
+ client.1:
+ default-branch: ceph-nautilus
+ rgw_server: client.1
+ stages: prepare
+ - print: "**** done rgw ragweed prepare 2-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/2-workload/test_rbd_api.yaml b/qa/suites/upgrade/luminous-x/parallel/2-workload/test_rbd_api.yaml
new file mode 100644
index 00000000..81563c90
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/2-workload/test_rbd_api.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ librbd C and C++ api tests
+workload:
+ full_sequential:
+ - workunit:
+ branch: luminous
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ - print: "**** done rbd/test_librbd.sh 2-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/2-workload/test_rbd_python.yaml b/qa/suites/upgrade/luminous-x/parallel/2-workload/test_rbd_python.yaml
new file mode 100644
index 00000000..e17207d2
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/2-workload/test_rbd_python.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ librbd python api tests
+workload:
+ full_sequential:
+ - workunit:
+ branch: luminous
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
+ - print: "**** done rbd/test_librbd_python.sh 2-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/3-upgrade-sequence/.qa b/qa/suites/upgrade/luminous-x/parallel/3-upgrade-sequence/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/3-upgrade-sequence/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/parallel/3-upgrade-sequence/upgrade-all.yaml b/qa/suites/upgrade/luminous-x/parallel/3-upgrade-sequence/upgrade-all.yaml
new file mode 100644
index 00000000..7fb9829a
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/3-upgrade-sequence/upgrade-all.yaml
@@ -0,0 +1,22 @@
+meta:
+- desc: |
+ upgrade the ceph cluster
+upgrade-sequence:
+ sequential:
+ - ceph.restart:
+ daemons: [mon.a, mon.b, mon.c, mgr.x]
+ mon-health-to-clog: false
+ wait-for-healthy: false
+ - exec:
+ mon.a:
+ - ceph config set global mon_warn_on_msgr2_not_enabled false
+ - ceph.healthy:
+ - ceph.restart:
+ daemons: [osd.0, osd.1, osd.2, osd.3, osd.4, osd.5, osd.6, osd.7, osd.8, osd.9, osd.10, osd.11]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+ - ceph.restart:
+ daemons: [mds.a]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+ - print: "**** done ceph.restart all"
diff --git a/qa/suites/upgrade/luminous-x/parallel/3-upgrade-sequence/upgrade-mon-osd-mds.yaml b/qa/suites/upgrade/luminous-x/parallel/3-upgrade-sequence/upgrade-mon-osd-mds.yaml
new file mode 100644
index 00000000..4f9aac75
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/3-upgrade-sequence/upgrade-mon-osd-mds.yaml
@@ -0,0 +1,50 @@
+meta:
+- desc: |
+ upgrade the ceph cluster,
+ upgrate in two steps
+ step one ordering: mon.a, osd.0, osd.1, mds.a
+ step two ordering: mon.b, mon.c, osd.2, osd.3
+ ceph expected to be healthy state after each step
+upgrade-sequence:
+ sequential:
+ - ceph.restart:
+ daemons: [mon.a]
+ wait-for-healthy: true
+ - sleep:
+ duration: 60
+ - ceph.restart:
+ daemons: [mon.b, mgr.x]
+ wait-for-healthy: true
+ mon-health-to-clog: false
+ - sleep:
+ duration: 60
+ - ceph.restart:
+ daemons: [mon.c]
+ wait-for-healthy: false
+ mon-health-to-clog: false
+ - exec:
+ mon.a:
+ - ceph config set global mon_warn_on_msgr2_not_enabled false
+ - ceph.healthy:
+ - sleep:
+ duration: 60
+ - ceph.restart:
+ daemons: [osd.0, osd.1, osd.2, osd.3]
+ wait-for-healthy: true
+ - sleep:
+ duration: 60
+ - ceph.restart: [mds.a]
+ - sleep:
+ duration: 60
+ - sleep:
+ duration: 60
+ - ceph.restart:
+ daemons: [osd.4, osd.5, osd.6, osd.7]
+ wait-for-healthy: true
+ - sleep:
+ duration: 60
+ - ceph.restart:
+ daemons: [osd.8, osd.9, osd.10, osd.11]
+ wait-for-healthy: true
+ - sleep:
+ duration: 60
diff --git a/qa/suites/upgrade/luminous-x/parallel/4-msgr2.yaml b/qa/suites/upgrade/luminous-x/parallel/4-msgr2.yaml
new file mode 100644
index 00000000..60e3e200
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/4-msgr2.yaml
@@ -0,0 +1,5 @@
+tasks:
+- exec:
+ mon.a:
+ - ceph mon enable-msgr2
+ - ceph config rm global mon_warn_on_msgr2_not_enabled
diff --git a/qa/suites/upgrade/luminous-x/parallel/4-nautilus.yaml b/qa/suites/upgrade/luminous-x/parallel/4-nautilus.yaml
new file mode 120000
index 00000000..9e99b7d2
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/4-nautilus.yaml
@@ -0,0 +1 @@
+.qa/releases/nautilus.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/parallel/5-final-workload/+ b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/+
diff --git a/qa/suites/upgrade/luminous-x/parallel/5-final-workload/.qa b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/parallel/5-final-workload/blogbench.yaml b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/blogbench.yaml
new file mode 100644
index 00000000..205f72e8
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/blogbench.yaml
@@ -0,0 +1,13 @@
+meta:
+- desc: |
+ run a cephfs stress test
+ mount ceph-fuse on client.3 before running workunit
+tasks:
+- sequential:
+ - ceph-fuse:
+ - print: "**** done ceph-fuse 4-final-workload"
+ - workunit:
+ clients:
+ client.3:
+ - suites/blogbench.sh
+ - print: "**** done suites/blogbench.sh 4-final-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados-snaps-few-objects.yaml b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados-snaps-few-objects.yaml
new file mode 100644
index 00000000..d8b3dcb3
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados-snaps-few-objects.yaml
@@ -0,0 +1,17 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool with snapshots
+tasks:
+ - rados:
+ clients: [client.1]
+ ops: 4000
+ objects: 50
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ - print: "**** done rados 4-final-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados_loadgenmix.yaml b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados_loadgenmix.yaml
new file mode 100644
index 00000000..922a9da4
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados_loadgenmix.yaml
@@ -0,0 +1,9 @@
+meta:
+- desc: |
+ generate read/write load with rados objects ranging from 1 byte to 1MB
+tasks:
+ - workunit:
+ clients:
+ client.1:
+ - rados/load-gen-mix.sh
+ - print: "**** done rados/load-gen-mix.sh 4-final-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados_mon_thrash.yaml b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados_mon_thrash.yaml
new file mode 100644
index 00000000..129d1386
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados_mon_thrash.yaml
@@ -0,0 +1,18 @@
+meta:
+- desc: |
+ librados C and C++ api tests
+overrides:
+ ceph:
+ log-whitelist:
+ - reached quota
+ - \(REQUEST_SLOW\)
+tasks:
+ - mon_thrash:
+ revive_delay: 20
+ thrash_delay: 1
+ - print: "**** done mon_thrash 4-final-workload"
+ - workunit:
+ clients:
+ client.1:
+ - rados/test.sh
+ - print: "**** done rados/test.sh 4-final-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rbd_cls.yaml b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rbd_cls.yaml
new file mode 100644
index 00000000..aaf0a377
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rbd_cls.yaml
@@ -0,0 +1,9 @@
+meta:
+- desc: |
+ rbd object class functional tests
+tasks:
+ - workunit:
+ clients:
+ client.1:
+ - cls/test_cls_rbd.sh
+ - print: "**** done cls/test_cls_rbd.sh 4-final-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rbd_import_export.yaml b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rbd_import_export.yaml
new file mode 100644
index 00000000..46e13550
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rbd_import_export.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ run basic import/export cli tests for rbd
+tasks:
+ - workunit:
+ clients:
+ client.1:
+ - rbd/import_export.sh
+ env:
+ RBD_CREATE_ARGS: --new-format
+ - print: "**** done rbd/import_export.sh 4-final-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rgw.yaml b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rgw.yaml
new file mode 100644
index 00000000..00855dc5
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rgw.yaml
@@ -0,0 +1,8 @@
+overrides:
+ rgw:
+ frontend: civetweb
+tasks:
+ - sequential:
+ - rgw: [client.1]
+ - print: "**** done rgw 4-final-workload"
+ - rgw-final-workload
diff --git a/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rgw_ragweed_check.yaml b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rgw_ragweed_check.yaml
new file mode 100644
index 00000000..c91d91f6
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rgw_ragweed_check.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ ragweed check for rgw
+rgw-final-workload:
+ full_sequential:
+ - ragweed:
+ client.1:
+ default-branch: ceph-nautilus
+ rgw_server: client.1
+ stages: check
+ - print: "**** done ragweed check 4-final-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rgw_swift.yaml b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rgw_swift.yaml
new file mode 100644
index 00000000..e91ccc82
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/5-final-workload/rgw_swift.yaml
@@ -0,0 +1,10 @@
+meta:
+- desc: |
+ swift api tests for rgw
+rgw-final-workload:
+ full_sequential:
+ - swift:
+ client.1:
+ force-branch: ceph-nautilus
+ rgw_server: client.1
+ - print: "**** done swift 4-final-workload"
diff --git a/qa/suites/upgrade/luminous-x/parallel/objectstore b/qa/suites/upgrade/luminous-x/parallel/objectstore
new file mode 120000
index 00000000..016cbf96
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/objectstore
@@ -0,0 +1 @@
+../stress-split/objectstore/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/parallel/supported-all-distro b/qa/suites/upgrade/luminous-x/parallel/supported-all-distro
new file mode 120000
index 00000000..ca82dde5
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/parallel/supported-all-distro
@@ -0,0 +1 @@
+.qa/distros/supported-all-distro \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/% b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/%
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/.qa b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/0-cluster b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/0-cluster
new file mode 120000
index 00000000..35809372
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/0-cluster
@@ -0,0 +1 @@
+../stress-split/0-cluster/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/1-luminous-install b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/1-luminous-install
new file mode 120000
index 00000000..0479ac54
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/1-luminous-install
@@ -0,0 +1 @@
+../stress-split/1-ceph-install/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/1.1-pg-log-overrides/normal_pg_log.yaml b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/1.1-pg-log-overrides/normal_pg_log.yaml
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/1.1-pg-log-overrides/normal_pg_log.yaml
@@ -0,0 +1 @@
+
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/1.1-pg-log-overrides/short_pg_log.yaml b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/1.1-pg-log-overrides/short_pg_log.yaml
new file mode 100644
index 00000000..e31e37ba
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/1.1-pg-log-overrides/short_pg_log.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd min pg log entries: 1
+ osd max pg log entries: 2
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/2-partial-upgrade b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/2-partial-upgrade
new file mode 120000
index 00000000..ab35fc1a
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/2-partial-upgrade
@@ -0,0 +1 @@
+../stress-split/2-partial-upgrade/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/3-thrash/.qa b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/3-thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/3-thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/3-thrash/default.yaml b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/3-thrash/default.yaml
new file mode 100644
index 00000000..85625459
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/3-thrash/default.yaml
@@ -0,0 +1,27 @@
+meta:
+- desc: |
+ randomly kill and revive osd
+ small chance to increase the number of pgs
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - wrongly marked me down
+ - objects unfound and apparently lost
+ - log bound mismatch
+tasks:
+- parallel:
+ - stress-tasks
+stress-tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgpnum_fix: 1
+ min_in: 4
+ chance_thrash_cluster_full: 0
+ chance_thrash_pg_upmap: 0
+ chance_thrash_pg_upmap_items: 0
+ chance_force_recovery: 0
+ aggressive_pg_num_changes: false
+ disable_objectstore_tool_tests: true
+- print: "**** done thrashosds 3-thrash"
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/4-ec-workload.yaml b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/4-ec-workload.yaml
new file mode 100644
index 00000000..c89551e6
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/4-ec-workload.yaml
@@ -0,0 +1,22 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on an erasure coded pool
+stress-tasks:
+ - rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ ec_pool: true
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 0
+ append: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
+ setattr: 25
+ rmattr: 25
+ - print: "**** done rados ec task"
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/5-finish-upgrade.yaml b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/5-finish-upgrade.yaml
new file mode 120000
index 00000000..a66a7dc1
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/5-finish-upgrade.yaml
@@ -0,0 +1 @@
+../stress-split/5-finish-upgrade.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/7-final-workload.yaml b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/7-final-workload.yaml
new file mode 100644
index 00000000..50a14650
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/7-final-workload.yaml
@@ -0,0 +1,35 @@
+#
+# k=3 implies a stripe_width of 1376*3 = 4128 which is different from
+# the default value of 4096 It is also not a multiple of 1024*1024 and
+# creates situations where rounding rules during recovery becomes
+# necessary.
+#
+meta:
+- desc: |
+ randomized correctness test for rados operations on an erasure coded pool
+ using the jerasure plugin with k=3 and m=1
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ ec_pool: true
+ write_append_excl: false
+ erasure_code_profile:
+ name: jerasure31profile
+ plugin: jerasure
+ k: 3
+ m: 1
+ technique: reed_sol_van
+ crush-failure-domain: osd
+ op_weights:
+ read: 100
+ write: 0
+ append: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
+ setattr: 25
+ rmattr: 25
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/objectstore b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/objectstore
new file mode 120000
index 00000000..016cbf96
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/objectstore
@@ -0,0 +1 @@
+../stress-split/objectstore/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/supported-all-distro b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/supported-all-distro
new file mode 120000
index 00000000..ca82dde5
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/supported-all-distro
@@ -0,0 +1 @@
+.qa/distros/supported-all-distro \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split-erasure-code/thrashosds-health.yaml b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split-erasure-code/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/% b/qa/suites/upgrade/luminous-x/stress-split/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/%
diff --git a/qa/suites/upgrade/luminous-x/stress-split/.qa b/qa/suites/upgrade/luminous-x/stress-split/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/0-cluster/+ b/qa/suites/upgrade/luminous-x/stress-split/0-cluster/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/0-cluster/+
diff --git a/qa/suites/upgrade/luminous-x/stress-split/0-cluster/.qa b/qa/suites/upgrade/luminous-x/stress-split/0-cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/0-cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/0-cluster/openstack.yaml b/qa/suites/upgrade/luminous-x/stress-split/0-cluster/openstack.yaml
new file mode 100644
index 00000000..5caffc35
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/0-cluster/openstack.yaml
@@ -0,0 +1,6 @@
+openstack:
+ - machine:
+ disk: 100 # GB
+ - volumes: # attached to each instance
+ count: 4
+ size: 30 # GB
diff --git a/qa/suites/upgrade/luminous-x/stress-split/0-cluster/start.yaml b/qa/suites/upgrade/luminous-x/stress-split/0-cluster/start.yaml
new file mode 100644
index 00000000..e2096deb
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/0-cluster/start.yaml
@@ -0,0 +1,40 @@
+meta:
+- desc: |
+ Run ceph on two nodes,
+ with a separate client-only node.
+ Use xfs beneath the osds.
+overrides:
+ ceph:
+ mon_bind_msgr2: false
+ mon_bind_addrvec: false
+ fs: xfs
+ log-whitelist:
+ - overall HEALTH_
+ - \(MON_DOWN\)
+ - \(MGR_DOWN\)
+ - slow request
+ - \(MON_MSGR2_NOT_ENABLED\)
+ conf:
+ global:
+ enable experimental unrecoverable data corrupting features: "*"
+ mon warn on msgr2 not enabled: false
+ mon:
+ mon warn on osd down out interval zero: false
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+- - mon.b
+ - osd.4
+ - osd.5
+ - osd.6
+ - osd.7
+- - mon.c
+- - osd.8
+ - osd.9
+ - osd.10
+ - osd.11
+- - client.0
diff --git a/qa/suites/upgrade/luminous-x/stress-split/1-ceph-install/.qa b/qa/suites/upgrade/luminous-x/stress-split/1-ceph-install/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/1-ceph-install/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/1-ceph-install/luminous.yaml b/qa/suites/upgrade/luminous-x/stress-split/1-ceph-install/luminous.yaml
new file mode 100644
index 00000000..0d7eeb38
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/1-ceph-install/luminous.yaml
@@ -0,0 +1,29 @@
+meta:
+- desc: install ceph/luminous latest
+tasks:
+- install:
+ branch: luminous
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-diskprediction-cloud
+ - ceph-mgr-rook
+ - ceph-mgr-ssh
+ extra_packages: ['librados2']
+- print: "**** done install luminous"
+- ceph:
+ conf:
+ global:
+ bluestore_warn_on_legacy_statfs: false
+ mon pg warn min per osd: 0
+- exec:
+ osd.0:
+ - ceph osd require-osd-release luminous
+ - ceph osd set-require-min-compat-client luminous
+- print: "**** done ceph"
+overrides:
+ ceph:
+ conf:
+ mon:
+ mon warn on osd down out interval zero: false
diff --git a/qa/suites/upgrade/luminous-x/stress-split/1.1-pg-log-overrides/normal_pg_log.yaml b/qa/suites/upgrade/luminous-x/stress-split/1.1-pg-log-overrides/normal_pg_log.yaml
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/1.1-pg-log-overrides/normal_pg_log.yaml
@@ -0,0 +1 @@
+
diff --git a/qa/suites/upgrade/luminous-x/stress-split/1.1-pg-log-overrides/short_pg_log.yaml b/qa/suites/upgrade/luminous-x/stress-split/1.1-pg-log-overrides/short_pg_log.yaml
new file mode 100644
index 00000000..e31e37ba
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/1.1-pg-log-overrides/short_pg_log.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd min pg log entries: 1
+ osd max pg log entries: 2
diff --git a/qa/suites/upgrade/luminous-x/stress-split/2-partial-upgrade/.qa b/qa/suites/upgrade/luminous-x/stress-split/2-partial-upgrade/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/2-partial-upgrade/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/2-partial-upgrade/firsthalf.yaml b/qa/suites/upgrade/luminous-x/stress-split/2-partial-upgrade/firsthalf.yaml
new file mode 100644
index 00000000..58ff5ac6
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/2-partial-upgrade/firsthalf.yaml
@@ -0,0 +1,14 @@
+meta:
+- desc: |
+ install upgrade ceph/-x on 2/3 of cluster
+ restart : mons, osd.0-7
+tasks:
+- install.upgrade:
+ mon.a:
+ mon.b:
+ mon.c:
+- print: "**** done install.upgrade of first 3 nodes"
+- ceph.restart:
+ daemons: [mon.a,mon.b,mgr.x,osd.0,osd.1,osd.2,osd.3,osd.4,osd.5,osd.6,osd.7]
+ mon-health-to-clog: false
+- print: "**** done ceph.restart of all mons and 2/3 of osds"
diff --git a/qa/suites/upgrade/luminous-x/stress-split/3-thrash/.qa b/qa/suites/upgrade/luminous-x/stress-split/3-thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/3-thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/3-thrash/default.yaml b/qa/suites/upgrade/luminous-x/stress-split/3-thrash/default.yaml
new file mode 100644
index 00000000..e0f317b0
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/3-thrash/default.yaml
@@ -0,0 +1,26 @@
+meta:
+- desc: |
+ randomly kill and revive osd
+ small chance to increase the number of pgs
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - wrongly marked me down
+ - objects unfound and apparently lost
+ - log bound mismatch
+tasks:
+- parallel:
+ - stress-tasks
+stress-tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgpnum_fix: 1
+ chance_thrash_cluster_full: 0
+ chance_thrash_pg_upmap: 0
+ chance_thrash_pg_upmap_items: 0
+ disable_objectstore_tool_tests: true
+ chance_force_recovery: 0
+ aggressive_pg_num_changes: false
+- print: "**** done thrashosds 3-thrash"
diff --git a/qa/suites/upgrade/luminous-x/stress-split/4-workload/+ b/qa/suites/upgrade/luminous-x/stress-split/4-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/4-workload/+
diff --git a/qa/suites/upgrade/luminous-x/stress-split/4-workload/.qa b/qa/suites/upgrade/luminous-x/stress-split/4-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/4-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/4-workload/radosbench.yaml b/qa/suites/upgrade/luminous-x/stress-split/4-workload/radosbench.yaml
new file mode 100644
index 00000000..115939e6
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/4-workload/radosbench.yaml
@@ -0,0 +1,52 @@
+meta:
+- desc: |
+ run randomized correctness test for rados operations
+ generate write load with rados bench
+stress-tasks:
+- full_sequential:
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+- print: "**** done radosbench 7-workload"
diff --git a/qa/suites/upgrade/luminous-x/stress-split/4-workload/rbd-cls.yaml b/qa/suites/upgrade/luminous-x/stress-split/4-workload/rbd-cls.yaml
new file mode 100644
index 00000000..f8cc4d8a
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/4-workload/rbd-cls.yaml
@@ -0,0 +1,10 @@
+meta:
+- desc: |
+ run basic cls tests for rbd
+stress-tasks:
+- workunit:
+ branch: luminous
+ clients:
+ client.0:
+ - cls/test_cls_rbd.sh
+- print: "**** done cls/test_cls_rbd.sh 5-workload"
diff --git a/qa/suites/upgrade/luminous-x/stress-split/4-workload/rbd-import-export.yaml b/qa/suites/upgrade/luminous-x/stress-split/4-workload/rbd-import-export.yaml
new file mode 100644
index 00000000..30a677af
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/4-workload/rbd-import-export.yaml
@@ -0,0 +1,12 @@
+meta:
+- desc: |
+ run basic import/export cli tests for rbd
+stress-tasks:
+- workunit:
+ branch: luminous
+ clients:
+ client.0:
+ - rbd/import_export.sh
+ env:
+ RBD_CREATE_ARGS: --new-format
+- print: "**** done rbd/import_export.sh 5-workload"
diff --git a/qa/suites/upgrade/luminous-x/stress-split/4-workload/rbd_api.yaml b/qa/suites/upgrade/luminous-x/stress-split/4-workload/rbd_api.yaml
new file mode 100644
index 00000000..9079aa33
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/4-workload/rbd_api.yaml
@@ -0,0 +1,10 @@
+meta:
+- desc: |
+ librbd C and C++ api tests
+stress-tasks:
+- workunit:
+ branch: luminous
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+- print: "**** done rbd/test_librbd.sh 7-workload"
diff --git a/qa/suites/upgrade/luminous-x/stress-split/4-workload/readwrite.yaml b/qa/suites/upgrade/luminous-x/stress-split/4-workload/readwrite.yaml
new file mode 100644
index 00000000..41e34d6d
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/4-workload/readwrite.yaml
@@ -0,0 +1,16 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool,
+ using only reads, writes, and deletes
+stress-tasks:
+- full_sequential:
+ - rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ write_append_excl: false
+ op_weights:
+ read: 45
+ write: 45
+ delete: 10
+- print: "**** done rados/readwrite 5-workload"
diff --git a/qa/suites/upgrade/luminous-x/stress-split/4-workload/snaps-few-objects.yaml b/qa/suites/upgrade/luminous-x/stress-split/4-workload/snaps-few-objects.yaml
new file mode 100644
index 00000000..f56d0de0
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/4-workload/snaps-few-objects.yaml
@@ -0,0 +1,18 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool with snapshot operations
+stress-tasks:
+- full_sequential:
+ - rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+- print: "**** done rados/snaps-few-objects 5-workload"
diff --git a/qa/suites/upgrade/luminous-x/stress-split/5-finish-upgrade.yaml b/qa/suites/upgrade/luminous-x/stress-split/5-finish-upgrade.yaml
new file mode 100644
index 00000000..306445c8
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/5-finish-upgrade.yaml
@@ -0,0 +1,15 @@
+tasks:
+- install.upgrade:
+ osd.8:
+ client.0:
+- ceph.restart:
+ daemons: [mon.c, osd.8, osd.9, osd.10, osd.11]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- exec:
+ osd.0:
+ - ceph osd set pglog_hardlimit
+ - ceph osd dump --format=json-pretty | grep "flags"
+ - ceph config set global mon_warn_on_msgr2_not_enabled false
+- print: "**** try to set pglog_hardlimit again, should succeed"
+
diff --git a/qa/suites/upgrade/luminous-x/stress-split/6-msgr2.yaml b/qa/suites/upgrade/luminous-x/stress-split/6-msgr2.yaml
new file mode 100644
index 00000000..f56c8be0
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/6-msgr2.yaml
@@ -0,0 +1,6 @@
+tasks:
+- exec:
+ mon.a:
+ - ceph mon enable-msgr2
+ - ceph config rm global mon_warn_on_msgr2_not_enabled
+- ceph.healthy:
diff --git a/qa/suites/upgrade/luminous-x/stress-split/6-nautilus.yaml b/qa/suites/upgrade/luminous-x/stress-split/6-nautilus.yaml
new file mode 120000
index 00000000..9e99b7d2
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/6-nautilus.yaml
@@ -0,0 +1 @@
+.qa/releases/nautilus.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/+ b/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/+
diff --git a/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/.qa b/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/rgw-swift.yaml b/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/rgw-swift.yaml
new file mode 100644
index 00000000..1b5710b1
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/rgw-swift.yaml
@@ -0,0 +1,12 @@
+meta:
+- desc: |
+ swift api tests for rgw
+tasks:
+- rgw:
+ client.0:
+- print: "**** done rgw 9-workload"
+- swift:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+- print: "**** done swift 9-workload"
diff --git a/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/snaps-many-objects.yaml b/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/snaps-many-objects.yaml
new file mode 100644
index 00000000..805bf97c
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/snaps-many-objects.yaml
@@ -0,0 +1,16 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool with snapshot operations
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
diff --git a/qa/suites/upgrade/luminous-x/stress-split/objectstore/.qa b/qa/suites/upgrade/luminous-x/stress-split/objectstore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/objectstore/bluestore-bitmap.yaml b/qa/suites/upgrade/luminous-x/stress-split/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/objectstore/filestore-xfs.yaml b/qa/suites/upgrade/luminous-x/stress-split/objectstore/filestore-xfs.yaml
new file mode 120000
index 00000000..41f2a9d1
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/objectstore/filestore-xfs.yaml
@@ -0,0 +1 @@
+.qa/objectstore/filestore-xfs.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/supported-all-distro b/qa/suites/upgrade/luminous-x/stress-split/supported-all-distro
new file mode 120000
index 00000000..ca82dde5
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/supported-all-distro
@@ -0,0 +1 @@
+.qa/distros/supported-all-distro \ No newline at end of file
diff --git a/qa/suites/upgrade/luminous-x/stress-split/thrashosds-health.yaml b/qa/suites/upgrade/luminous-x/stress-split/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/upgrade/luminous-x/stress-split/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x-singleton/% b/qa/suites/upgrade/mimic-x-singleton/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/%
diff --git a/qa/suites/upgrade/mimic-x-singleton/.qa b/qa/suites/upgrade/mimic-x-singleton/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x-singleton/0-cluster/+ b/qa/suites/upgrade/mimic-x-singleton/0-cluster/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/0-cluster/+
diff --git a/qa/suites/upgrade/mimic-x-singleton/0-cluster/.qa b/qa/suites/upgrade/mimic-x-singleton/0-cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/0-cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x-singleton/0-cluster/openstack.yaml b/qa/suites/upgrade/mimic-x-singleton/0-cluster/openstack.yaml
new file mode 100644
index 00000000..a0d5c201
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/0-cluster/openstack.yaml
@@ -0,0 +1,6 @@
+openstack:
+ - machine:
+ disk: 100 # GB
+ - volumes: # attached to each instance
+ count: 3
+ size: 30 # GB
diff --git a/qa/suites/upgrade/mimic-x-singleton/0-cluster/start.yaml b/qa/suites/upgrade/mimic-x-singleton/0-cluster/start.yaml
new file mode 100644
index 00000000..3c65ea9c
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/0-cluster/start.yaml
@@ -0,0 +1,37 @@
+meta:
+- desc: |
+ Run ceph on two nodes,
+ with a separate client-only node.
+ Use xfs beneath the osds.
+overrides:
+ ceph:
+ mon_bind_addrvec: false
+ mon_bind_msgr2: false
+ fs: xfs
+ conf:
+ global:
+ ms dump corrupt message level: 0
+ ms bind msgr2: false
+ mds:
+ debug ms: 1
+ debug mds: 20
+roles:
+- - mon.a
+ - mgr.x
+ - mds.a
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+- - mon.b
+ - osd.4
+ - osd.5
+ - osd.6
+ - osd.7
+- - mon.c
+ - mgr.y
+ - osd.8
+ - osd.9
+ - osd.10
+ - osd.11
+- - client.0
diff --git a/qa/suites/upgrade/mimic-x-singleton/1-install/.qa b/qa/suites/upgrade/mimic-x-singleton/1-install/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/1-install/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x-singleton/1-install/mimic.yaml b/qa/suites/upgrade/mimic-x-singleton/1-install/mimic.yaml
new file mode 100644
index 00000000..c92dbc54
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/1-install/mimic.yaml
@@ -0,0 +1,25 @@
+overrides:
+ ceph:
+ log-whitelist:
+ - \(MON_DOWN\)
+ - \(MGR_DOWN\)
+ - slow request
+meta:
+- desc: install ceph/mimic latest
+tasks:
+- install:
+ branch: mimic
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-diskprediction-cloud
+ - ceph-mgr-rook
+ - ceph-mgr-ssh
+ extra_packages: ['librados2']
+- print: "**** done install mimic"
+- ceph:
+ conf:
+ global:
+ mon pg warn min per osd: 0
+- print: "**** done ceph"
diff --git a/qa/suites/upgrade/mimic-x-singleton/2-partial-upgrade/.qa b/qa/suites/upgrade/mimic-x-singleton/2-partial-upgrade/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/2-partial-upgrade/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x-singleton/2-partial-upgrade/firsthalf.yaml b/qa/suites/upgrade/mimic-x-singleton/2-partial-upgrade/firsthalf.yaml
new file mode 100644
index 00000000..a6cf4a46
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/2-partial-upgrade/firsthalf.yaml
@@ -0,0 +1,18 @@
+meta:
+- desc: |
+ install upgrade ceph/-x on one node only
+ 1st half
+ restart : osd.0,1,2,3,4,5
+tasks:
+- install.upgrade:
+ mon.a:
+ mon.b:
+- print: "**** done install.upgrade osd.0"
+- ceph.restart:
+ daemons: [mon.a, mon.b]
+ wait-for-healthy: false
+ mon-health-to-clog: false
+- ceph.restart:
+ daemons: [osd.0, osd.1, osd.2, osd.3, osd.4, osd.5, osd.6, osd.7]
+ wait-for-healthy: false
+- print: "**** done ceph.restart 1st 2/3s"
diff --git a/qa/suites/upgrade/mimic-x-singleton/3-thrash/.qa b/qa/suites/upgrade/mimic-x-singleton/3-thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/3-thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x-singleton/3-thrash/default.yaml b/qa/suites/upgrade/mimic-x-singleton/3-thrash/default.yaml
new file mode 100644
index 00000000..e36882da
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/3-thrash/default.yaml
@@ -0,0 +1,22 @@
+meta:
+- desc: |
+ randomly kill and revive osd
+ small chance to increase the number of pgs
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ - log bound mismatch
+tasks:
+- parallel:
+ - split_tasks
+split_tasks:
+ sequential:
+ - thrashosds:
+ disable_objectstore_tool_tests: true
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgpnum_fix: 1
+ aggressive_pg_num_changes: false
+ - print: "**** done thrashosds 3-thrash"
diff --git a/qa/suites/upgrade/mimic-x-singleton/4-workload/+ b/qa/suites/upgrade/mimic-x-singleton/4-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/4-workload/+
diff --git a/qa/suites/upgrade/mimic-x-singleton/4-workload/.qa b/qa/suites/upgrade/mimic-x-singleton/4-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/4-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x-singleton/4-workload/rbd-cls.yaml b/qa/suites/upgrade/mimic-x-singleton/4-workload/rbd-cls.yaml
new file mode 100644
index 00000000..c0415554
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/4-workload/rbd-cls.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ run basic cls tests for rbd
+split_tasks:
+ sequential:
+ - workunit:
+ branch: mimic
+ clients:
+ client.0:
+ - cls/test_cls_rbd.sh
+ - print: "**** done cls/test_cls_rbd.sh 5-workload"
diff --git a/qa/suites/upgrade/mimic-x-singleton/4-workload/rbd-import-export.yaml b/qa/suites/upgrade/mimic-x-singleton/4-workload/rbd-import-export.yaml
new file mode 100644
index 00000000..997f452d
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/4-workload/rbd-import-export.yaml
@@ -0,0 +1,13 @@
+meta:
+- desc: |
+ run basic import/export cli tests for rbd
+split_tasks:
+ sequential:
+ - workunit:
+ branch: mimic
+ clients:
+ client.0:
+ - rbd/import_export.sh
+ env:
+ RBD_CREATE_ARGS: --new-format
+ - print: "**** done rbd/import_export.sh 5-workload"
diff --git a/qa/suites/upgrade/mimic-x-singleton/4-workload/readwrite.yaml b/qa/suites/upgrade/mimic-x-singleton/4-workload/readwrite.yaml
new file mode 100644
index 00000000..8833d4d8
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/4-workload/readwrite.yaml
@@ -0,0 +1,17 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool,
+ using only reads, writes, and deletes
+split_tasks:
+ sequential:
+ - full_sequential:
+ - rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ write_append_excl: false
+ op_weights:
+ read: 45
+ write: 45
+ delete: 10
+ - print: "**** done rados/readwrite 5-workload"
diff --git a/qa/suites/upgrade/mimic-x-singleton/4-workload/snaps-few-objects.yaml b/qa/suites/upgrade/mimic-x-singleton/4-workload/snaps-few-objects.yaml
new file mode 100644
index 00000000..c96cfbe3
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/4-workload/snaps-few-objects.yaml
@@ -0,0 +1,19 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool with snapshot operations
+split_tasks:
+ sequential:
+ - full_sequential:
+ - rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ - print: "**** done rados/snaps-few-objects 5-workload"
diff --git a/qa/suites/upgrade/mimic-x-singleton/5-workload/+ b/qa/suites/upgrade/mimic-x-singleton/5-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/5-workload/+
diff --git a/qa/suites/upgrade/mimic-x-singleton/5-workload/.qa b/qa/suites/upgrade/mimic-x-singleton/5-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/5-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x-singleton/5-workload/radosbench.yaml b/qa/suites/upgrade/mimic-x-singleton/5-workload/radosbench.yaml
new file mode 100644
index 00000000..2cfbf1dc
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/5-workload/radosbench.yaml
@@ -0,0 +1,41 @@
+meta:
+- desc: |
+ run randomized correctness test for rados operations
+ generate write load with rados bench
+split_tasks:
+ sequential:
+ - full_sequential:
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - radosbench:
+ clients: [client.0]
+ time: 150
+ - print: "**** done radosbench 7-workload"
diff --git a/qa/suites/upgrade/mimic-x-singleton/5-workload/rbd_api.yaml b/qa/suites/upgrade/mimic-x-singleton/5-workload/rbd_api.yaml
new file mode 100644
index 00000000..ccfc8385
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/5-workload/rbd_api.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ librbd C and C++ api tests
+split_tasks:
+ sequential:
+ - workunit:
+ branch: mimic
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ - print: "**** done rbd/test_librbd.sh 7-workload"
diff --git a/qa/suites/upgrade/mimic-x-singleton/6-finish-upgrade.yaml b/qa/suites/upgrade/mimic-x-singleton/6-finish-upgrade.yaml
new file mode 100644
index 00000000..e7fa4b2f
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/6-finish-upgrade.yaml
@@ -0,0 +1,30 @@
+meta:
+- desc: |
+ install upgrade on remaining node
+ restartin remaining osds
+overrides:
+ ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(FS_DEGRADED\)
+ - \(MDS_
+tasks:
+- install.upgrade:
+ mon.c:
+- ceph.restart:
+ daemons: [mon.c, mgr.x, mgr.y]
+ wait-for-up: true
+ wait-for-healthy: false
+- ceph.restart:
+ daemons: [osd.8, osd.9, osd.10, osd.11]
+ wait-for-up: true
+ wait-for-healthy: false
+- ceph.restart:
+ daemons: [mds.a]
+ wait-for-up: true
+ wait-for-healthy: false
+- exec:
+ mon.a:
+ - ceph mon enable-msgr2
+- install.upgrade:
+ client.0:
diff --git a/qa/suites/upgrade/mimic-x-singleton/7-nautilus.yaml b/qa/suites/upgrade/mimic-x-singleton/7-nautilus.yaml
new file mode 120000
index 00000000..9e99b7d2
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/7-nautilus.yaml
@@ -0,0 +1 @@
+.qa/releases/nautilus.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x-singleton/8-workload/+ b/qa/suites/upgrade/mimic-x-singleton/8-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/8-workload/+
diff --git a/qa/suites/upgrade/mimic-x-singleton/8-workload/.qa b/qa/suites/upgrade/mimic-x-singleton/8-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/8-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x-singleton/8-workload/rbd-python.yaml b/qa/suites/upgrade/mimic-x-singleton/8-workload/rbd-python.yaml
new file mode 100644
index 00000000..56ba21d7
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/8-workload/rbd-python.yaml
@@ -0,0 +1,9 @@
+meta:
+- desc: |
+ librbd python api tests
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
+- print: "**** done rbd/test_librbd_python.sh 9-workload"
diff --git a/qa/suites/upgrade/mimic-x-singleton/8-workload/rgw-swift.yaml b/qa/suites/upgrade/mimic-x-singleton/8-workload/rgw-swift.yaml
new file mode 100644
index 00000000..1b5710b1
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/8-workload/rgw-swift.yaml
@@ -0,0 +1,12 @@
+meta:
+- desc: |
+ swift api tests for rgw
+tasks:
+- rgw:
+ client.0:
+- print: "**** done rgw 9-workload"
+- swift:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+- print: "**** done swift 9-workload"
diff --git a/qa/suites/upgrade/mimic-x-singleton/8-workload/snaps-many-objects.yaml b/qa/suites/upgrade/mimic-x-singleton/8-workload/snaps-many-objects.yaml
new file mode 100644
index 00000000..805bf97c
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/8-workload/snaps-many-objects.yaml
@@ -0,0 +1,16 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool with snapshot operations
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
diff --git a/qa/suites/upgrade/mimic-x-singleton/supported-random-distro$ b/qa/suites/upgrade/mimic-x-singleton/supported-random-distro$
new file mode 120000
index 00000000..0862b445
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x-singleton/thrashosds-health.yaml b/qa/suites/upgrade/mimic-x-singleton/thrashosds-health.yaml
new file mode 120000
index 00000000..9124eb1a
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x-singleton/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/.qa b/qa/suites/upgrade/mimic-x/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/parallel/% b/qa/suites/upgrade/mimic-x/parallel/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/%
diff --git a/qa/suites/upgrade/mimic-x/parallel/.qa b/qa/suites/upgrade/mimic-x/parallel/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/parallel/0-cluster/+ b/qa/suites/upgrade/mimic-x/parallel/0-cluster/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/0-cluster/+
diff --git a/qa/suites/upgrade/mimic-x/parallel/0-cluster/.qa b/qa/suites/upgrade/mimic-x/parallel/0-cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/0-cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/parallel/0-cluster/openstack.yaml b/qa/suites/upgrade/mimic-x/parallel/0-cluster/openstack.yaml
new file mode 100644
index 00000000..f4d1349b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/0-cluster/openstack.yaml
@@ -0,0 +1,4 @@
+openstack:
+ - volumes: # attached to each instance
+ count: 3
+ size: 30 # GB
diff --git a/qa/suites/upgrade/mimic-x/parallel/0-cluster/start.yaml b/qa/suites/upgrade/mimic-x/parallel/0-cluster/start.yaml
new file mode 100644
index 00000000..099b70c3
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/0-cluster/start.yaml
@@ -0,0 +1,49 @@
+meta:
+- desc: |
+ Run ceph on two nodes,
+ with a separate client 0,1,2 third node.
+ Use xfs beneath the osds.
+ CephFS tests running on client 2,3
+ #Note-To enable RHEL runs on ovh nodes, add the following to overrides
+ #ansible.cephlab:
+ # skip_tags: entitlements,packages,repos
+roles:
+- - mon.a
+ - mgr.x
+ - mds.a
+ - osd.0
+ - osd.1
+- - mon.b
+ - mgr.y
+ - osd.2
+ - osd.3
+- - mon.c
+ - mds.b
+ - osd.4
+ - osd.5
+- - client.0
+ - client.1
+ - client.2
+ - client.3
+overrides:
+ ceph:
+ mon_bind_msgr2: false
+ mon_bind_addrvec: false
+ log-whitelist:
+ - scrub mismatch
+ - ScrubResult
+ - wrongly marked
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(SLOW_OPS\)
+ - overall HEALTH_
+ - \(MON_MSGR2_NOT_ENABLED\)
+ - slow request
+ conf:
+ global:
+ enable experimental unrecoverable data corrupting features: "*"
+ mon:
+ mon warn on osd down out interval zero: false
+ osd:
+ osd_class_load_list: "*"
+ osd_class_default_list: "*"
+ fs: xfs
diff --git a/qa/suites/upgrade/mimic-x/parallel/1-ceph-install/.qa b/qa/suites/upgrade/mimic-x/parallel/1-ceph-install/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/1-ceph-install/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/parallel/1-ceph-install/mimic.yaml b/qa/suites/upgrade/mimic-x/parallel/1-ceph-install/mimic.yaml
new file mode 100644
index 00000000..8d816dfe
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/1-ceph-install/mimic.yaml
@@ -0,0 +1,55 @@
+meta:
+- desc: |
+ install ceph/mimic latest
+ run workload and upgrade-sequence in parallel
+ upgrade the client node
+tasks:
+- install:
+ branch: mimic
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-diskprediction-cloud
+ - ceph-mgr-rook
+ - ceph-mgr-ssh
+ extra_packages: ['librados2']
+- print: "**** done installing mimic"
+- ceph:
+ log-whitelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ - evicting unresponsive client
+ conf:
+ global:
+ mon warn on pool no app: false
+ bluestore_warn_on_legacy_statfs: false
+ mon pg warn min per osd: 0
+- exec:
+ osd.0:
+ - ceph osd require-osd-release mimic
+ - ceph osd set-require-min-compat-client mimic
+- print: "**** done ceph"
+- install.upgrade:
+ mon.a:
+ mon.b:
+ mon.c:
+- print: "**** done install.upgrade non-client hosts"
+- parallel:
+ - workload
+ - upgrade-sequence
+- print: "**** done parallel"
+- install.upgrade:
+ client.0:
+- print: "**** done install.upgrade on client.0"
diff --git a/qa/suites/upgrade/mimic-x/parallel/1.1-pg-log-overrides/normal_pg_log.yaml b/qa/suites/upgrade/mimic-x/parallel/1.1-pg-log-overrides/normal_pg_log.yaml
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/1.1-pg-log-overrides/normal_pg_log.yaml
@@ -0,0 +1 @@
+
diff --git a/qa/suites/upgrade/mimic-x/parallel/1.1-pg-log-overrides/short_pg_log.yaml b/qa/suites/upgrade/mimic-x/parallel/1.1-pg-log-overrides/short_pg_log.yaml
new file mode 100644
index 00000000..e31e37ba
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/1.1-pg-log-overrides/short_pg_log.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd min pg log entries: 1
+ osd max pg log entries: 2
diff --git a/qa/suites/upgrade/mimic-x/parallel/2-workload/+ b/qa/suites/upgrade/mimic-x/parallel/2-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/2-workload/+
diff --git a/qa/suites/upgrade/mimic-x/parallel/2-workload/.qa b/qa/suites/upgrade/mimic-x/parallel/2-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/2-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/parallel/2-workload/blogbench.yaml b/qa/suites/upgrade/mimic-x/parallel/2-workload/blogbench.yaml
new file mode 100644
index 00000000..021fcc68
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/2-workload/blogbench.yaml
@@ -0,0 +1,14 @@
+meta:
+- desc: |
+ run a cephfs stress test
+ mount ceph-fuse on client.2 before running workunit
+workload:
+ full_sequential:
+ - sequential:
+ - ceph-fuse:
+ - print: "**** done ceph-fuse 2-workload"
+ - workunit:
+ clients:
+ client.2:
+ - suites/blogbench.sh
+ - print: "**** done suites/blogbench.sh 2-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/2-workload/ec-rados-default.yaml b/qa/suites/upgrade/mimic-x/parallel/2-workload/ec-rados-default.yaml
new file mode 100644
index 00000000..5c5a9588
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/2-workload/ec-rados-default.yaml
@@ -0,0 +1,24 @@
+meta:
+- desc: |
+ run run randomized correctness test for rados operations
+ on an erasure-coded pool
+workload:
+ full_sequential:
+ - rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ ec_pool: true
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 0
+ append: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
+ setattr: 25
+ rmattr: 25
+ - print: "**** done rados ec task"
diff --git a/qa/suites/upgrade/mimic-x/parallel/2-workload/rados_api.yaml b/qa/suites/upgrade/mimic-x/parallel/2-workload/rados_api.yaml
new file mode 100644
index 00000000..fcbdf57d
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/2-workload/rados_api.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ object class functional tests
+workload:
+ full_sequential:
+ - workunit:
+ branch: mimic
+ clients:
+ client.0:
+ - cls
+ - print: "**** done cls 2-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/2-workload/rados_loadgenbig.yaml b/qa/suites/upgrade/mimic-x/parallel/2-workload/rados_loadgenbig.yaml
new file mode 100644
index 00000000..fe88cc5b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/2-workload/rados_loadgenbig.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ generate read/write load with rados objects ranging from 1MB to 25MB
+workload:
+ full_sequential:
+ - workunit:
+ branch: mimic
+ clients:
+ client.0:
+ - rados/load-gen-big.sh
+ - print: "**** done rados/load-gen-big.sh 2-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/2-workload/rgw_ragweed_prepare.yaml b/qa/suites/upgrade/mimic-x/parallel/2-workload/rgw_ragweed_prepare.yaml
new file mode 100644
index 00000000..b95711fe
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/2-workload/rgw_ragweed_prepare.yaml
@@ -0,0 +1,14 @@
+meta:
+- desc: |
+ rgw ragweed prepare
+workload:
+ full_sequential:
+ - sequential:
+ - rgw:
+ - client.1
+ - ragweed:
+ client.1:
+ default-branch: ceph-nautilus
+ rgw_server: client.1
+ stages: prepare
+ - print: "**** done rgw ragweed prepare 2-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/2-workload/test_rbd_api.yaml b/qa/suites/upgrade/mimic-x/parallel/2-workload/test_rbd_api.yaml
new file mode 100644
index 00000000..b2f6766e
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/2-workload/test_rbd_api.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ librbd C and C++ api tests
+workload:
+ full_sequential:
+ - workunit:
+ branch: mimic
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+ - print: "**** done rbd/test_librbd.sh 2-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/2-workload/test_rbd_python.yaml b/qa/suites/upgrade/mimic-x/parallel/2-workload/test_rbd_python.yaml
new file mode 100644
index 00000000..c8b4fca7
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/2-workload/test_rbd_python.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ librbd python api tests
+workload:
+ full_sequential:
+ - workunit:
+ branch: mimic
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
+ - print: "**** done rbd/test_librbd_python.sh 2-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/3-upgrade-sequence/.qa b/qa/suites/upgrade/mimic-x/parallel/3-upgrade-sequence/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/3-upgrade-sequence/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/parallel/3-upgrade-sequence/upgrade-all.yaml b/qa/suites/upgrade/mimic-x/parallel/3-upgrade-sequence/upgrade-all.yaml
new file mode 100644
index 00000000..15a3271f
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/3-upgrade-sequence/upgrade-all.yaml
@@ -0,0 +1,22 @@
+meta:
+- desc: |
+ upgrade the ceph cluster
+upgrade-sequence:
+ sequential:
+ - ceph.restart:
+ daemons: [mon.a, mon.b, mon.c, mgr.x, mgr.y]
+ mon-health-to-clog: false
+ wait-for-healthy: false
+ - exec:
+ mon.a:
+ - ceph config set global mon_warn_on_msgr2_not_enabled false
+ - ceph.healthy:
+ - ceph.restart:
+ daemons: [osd.0, osd.1, osd.2, osd.3, osd.4, osd.5]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+ - ceph.restart:
+ daemons: [mds.a, mds.b]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+ - print: "**** done ceph.restart all"
diff --git a/qa/suites/upgrade/mimic-x/parallel/3-upgrade-sequence/upgrade-mon-osd-mds.yaml b/qa/suites/upgrade/mimic-x/parallel/3-upgrade-sequence/upgrade-mon-osd-mds.yaml
new file mode 100644
index 00000000..cf8b7164
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/3-upgrade-sequence/upgrade-mon-osd-mds.yaml
@@ -0,0 +1,51 @@
+meta:
+- desc: |
+ upgrade the ceph cluster,
+ upgrate in two steps
+ step one ordering: mon.a, osd.0, osd.1, mds.a
+ step two ordering: mon.b, mon.c, osd.2, osd.3
+ ceph expected to be healthy state after each step
+upgrade-sequence:
+ sequential:
+ - ceph.restart:
+ daemons: [mon.a]
+ wait-for-healthy: true
+ - sleep:
+ duration: 60
+ - ceph.restart:
+ daemons: [mon.b, mgr.x]
+ wait-for-healthy: true
+ mon-health-to-clog: false
+ - sleep:
+ duration: 60
+ - ceph.restart:
+ daemons: [mon.c]
+ wait-for-healthy: false
+ mon-health-to-clog: false
+ - exec:
+ mon.a:
+ - ceph config set global mon_warn_on_msgr2_not_enabled false
+ - ceph.healthy:
+ - sleep:
+ duration: 60
+ - ceph.restart:
+ daemons: [osd.0, osd.1]
+ wait-for-healthy: true
+ - sleep:
+ duration: 60
+ - ceph.restart: [mds.a, mds.b]
+ - sleep:
+ duration: 60
+ - ceph.restart:
+ daemons: [osd.4, osd.5]
+ wait-for-healthy: true
+ - sleep:
+ duration: 60
+ - sleep:
+ duration: 60
+ - ceph.restart:
+ daemons: [osd.2, osd.3]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+ - sleep:
+ duration: 60
diff --git a/qa/suites/upgrade/mimic-x/parallel/4-msgr2.yaml b/qa/suites/upgrade/mimic-x/parallel/4-msgr2.yaml
new file mode 100644
index 00000000..60e3e200
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/4-msgr2.yaml
@@ -0,0 +1,5 @@
+tasks:
+- exec:
+ mon.a:
+ - ceph mon enable-msgr2
+ - ceph config rm global mon_warn_on_msgr2_not_enabled
diff --git a/qa/suites/upgrade/mimic-x/parallel/4-nautilus.yaml b/qa/suites/upgrade/mimic-x/parallel/4-nautilus.yaml
new file mode 120000
index 00000000..9e99b7d2
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/4-nautilus.yaml
@@ -0,0 +1 @@
+.qa/releases/nautilus.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/+ b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/+
diff --git a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/.qa b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/blogbench.yaml b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/blogbench.yaml
new file mode 100644
index 00000000..d2629c03
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/blogbench.yaml
@@ -0,0 +1,13 @@
+meta:
+- desc: |
+ run a cephfs stress test
+ mount ceph-fuse on client.3 before running workunit
+tasks:
+- sequential:
+ - ceph-fuse:
+ - print: "**** done ceph-fuse 5-final-workload"
+ - workunit:
+ clients:
+ client.3:
+ - suites/blogbench.sh
+ - print: "**** done suites/blogbench.sh 5-final-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rados-snaps-few-objects.yaml b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rados-snaps-few-objects.yaml
new file mode 100644
index 00000000..d8b3dcb3
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rados-snaps-few-objects.yaml
@@ -0,0 +1,17 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool with snapshots
+tasks:
+ - rados:
+ clients: [client.1]
+ ops: 4000
+ objects: 50
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ - print: "**** done rados 4-final-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rados_loadgenmix.yaml b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rados_loadgenmix.yaml
new file mode 100644
index 00000000..922a9da4
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rados_loadgenmix.yaml
@@ -0,0 +1,9 @@
+meta:
+- desc: |
+ generate read/write load with rados objects ranging from 1 byte to 1MB
+tasks:
+ - workunit:
+ clients:
+ client.1:
+ - rados/load-gen-mix.sh
+ - print: "**** done rados/load-gen-mix.sh 4-final-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rados_mon_thrash.yaml b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rados_mon_thrash.yaml
new file mode 100644
index 00000000..129d1386
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rados_mon_thrash.yaml
@@ -0,0 +1,18 @@
+meta:
+- desc: |
+ librados C and C++ api tests
+overrides:
+ ceph:
+ log-whitelist:
+ - reached quota
+ - \(REQUEST_SLOW\)
+tasks:
+ - mon_thrash:
+ revive_delay: 20
+ thrash_delay: 1
+ - print: "**** done mon_thrash 4-final-workload"
+ - workunit:
+ clients:
+ client.1:
+ - rados/test.sh
+ - print: "**** done rados/test.sh 4-final-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rbd_cls.yaml b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rbd_cls.yaml
new file mode 100644
index 00000000..aaf0a377
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rbd_cls.yaml
@@ -0,0 +1,9 @@
+meta:
+- desc: |
+ rbd object class functional tests
+tasks:
+ - workunit:
+ clients:
+ client.1:
+ - cls/test_cls_rbd.sh
+ - print: "**** done cls/test_cls_rbd.sh 4-final-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rbd_import_export.yaml b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rbd_import_export.yaml
new file mode 100644
index 00000000..46e13550
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rbd_import_export.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ run basic import/export cli tests for rbd
+tasks:
+ - workunit:
+ clients:
+ client.1:
+ - rbd/import_export.sh
+ env:
+ RBD_CREATE_ARGS: --new-format
+ - print: "**** done rbd/import_export.sh 4-final-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw.yaml b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw.yaml
new file mode 100644
index 00000000..00855dc5
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw.yaml
@@ -0,0 +1,8 @@
+overrides:
+ rgw:
+ frontend: civetweb
+tasks:
+ - sequential:
+ - rgw: [client.1]
+ - print: "**** done rgw 4-final-workload"
+ - rgw-final-workload
diff --git a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw_ragweed_check.yaml b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw_ragweed_check.yaml
new file mode 100644
index 00000000..c91d91f6
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw_ragweed_check.yaml
@@ -0,0 +1,11 @@
+meta:
+- desc: |
+ ragweed check for rgw
+rgw-final-workload:
+ full_sequential:
+ - ragweed:
+ client.1:
+ default-branch: ceph-nautilus
+ rgw_server: client.1
+ stages: check
+ - print: "**** done ragweed check 4-final-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw_swift.yaml b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw_swift.yaml
new file mode 100644
index 00000000..e91ccc82
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw_swift.yaml
@@ -0,0 +1,10 @@
+meta:
+- desc: |
+ swift api tests for rgw
+rgw-final-workload:
+ full_sequential:
+ - swift:
+ client.1:
+ force-branch: ceph-nautilus
+ rgw_server: client.1
+ - print: "**** done swift 4-final-workload"
diff --git a/qa/suites/upgrade/mimic-x/parallel/objectstore b/qa/suites/upgrade/mimic-x/parallel/objectstore
new file mode 120000
index 00000000..016cbf96
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/objectstore
@@ -0,0 +1 @@
+../stress-split/objectstore/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/parallel/supported-all-distro b/qa/suites/upgrade/mimic-x/parallel/supported-all-distro
new file mode 120000
index 00000000..44d01d18
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/parallel/supported-all-distro
@@ -0,0 +1 @@
+../../../../../qa/distros/supported-all-distro/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/% b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/%
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/.qa b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/0-cluster b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/0-cluster
new file mode 120000
index 00000000..35809372
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/0-cluster
@@ -0,0 +1 @@
+../stress-split/0-cluster/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/1-luminous-install b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/1-luminous-install
new file mode 120000
index 00000000..0479ac54
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/1-luminous-install
@@ -0,0 +1 @@
+../stress-split/1-ceph-install/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/1.1-pg-log-overrides/normal_pg_log.yaml b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/1.1-pg-log-overrides/normal_pg_log.yaml
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/1.1-pg-log-overrides/normal_pg_log.yaml
@@ -0,0 +1 @@
+
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/1.1-pg-log-overrides/short_pg_log.yaml b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/1.1-pg-log-overrides/short_pg_log.yaml
new file mode 100644
index 00000000..e31e37ba
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/1.1-pg-log-overrides/short_pg_log.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd min pg log entries: 1
+ osd max pg log entries: 2
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/2-partial-upgrade b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/2-partial-upgrade
new file mode 120000
index 00000000..ab35fc1a
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/2-partial-upgrade
@@ -0,0 +1 @@
+../stress-split/2-partial-upgrade/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/3-thrash/.qa b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/3-thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/3-thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/3-thrash/default.yaml b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/3-thrash/default.yaml
new file mode 100644
index 00000000..b12d76e9
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/3-thrash/default.yaml
@@ -0,0 +1,26 @@
+meta:
+- desc: |
+ randomly kill and revive osd
+ small chance to increase the number of pgs
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - wrongly marked me down
+ - objects unfound and apparently lost
+ - log bound mismatch
+tasks:
+- parallel:
+ - stress-tasks
+stress-tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgpnum_fix: 1
+ min_in: 4
+ chance_thrash_cluster_full: 0
+ chance_thrash_pg_upmap: 0
+ chance_thrash_pg_upmap_items: 0
+ chance_force_recovery: 0
+ aggressive_pg_num_changes: false
+- print: "**** done thrashosds 3-thrash"
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/4-ec-workload.yaml b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/4-ec-workload.yaml
new file mode 100644
index 00000000..c89551e6
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/4-ec-workload.yaml
@@ -0,0 +1,22 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on an erasure coded pool
+stress-tasks:
+ - rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ ec_pool: true
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 0
+ append: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
+ setattr: 25
+ rmattr: 25
+ - print: "**** done rados ec task"
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/5-finish-upgrade.yaml b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/5-finish-upgrade.yaml
new file mode 120000
index 00000000..a66a7dc1
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/5-finish-upgrade.yaml
@@ -0,0 +1 @@
+../stress-split/5-finish-upgrade.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/7-final-workload.yaml b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/7-final-workload.yaml
new file mode 100644
index 00000000..50a14650
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/7-final-workload.yaml
@@ -0,0 +1,35 @@
+#
+# k=3 implies a stripe_width of 1376*3 = 4128 which is different from
+# the default value of 4096 It is also not a multiple of 1024*1024 and
+# creates situations where rounding rules during recovery becomes
+# necessary.
+#
+meta:
+- desc: |
+ randomized correctness test for rados operations on an erasure coded pool
+ using the jerasure plugin with k=3 and m=1
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ ec_pool: true
+ write_append_excl: false
+ erasure_code_profile:
+ name: jerasure31profile
+ plugin: jerasure
+ k: 3
+ m: 1
+ technique: reed_sol_van
+ crush-failure-domain: osd
+ op_weights:
+ read: 100
+ write: 0
+ append: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+ copy_from: 50
+ setattr: 25
+ rmattr: 25
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/objectstore b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/objectstore
new file mode 120000
index 00000000..016cbf96
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/objectstore
@@ -0,0 +1 @@
+../stress-split/objectstore/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/supported-all-distro b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/supported-all-distro
new file mode 120000
index 00000000..44d01d18
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/supported-all-distro
@@ -0,0 +1 @@
+../../../../../qa/distros/supported-all-distro/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split-erasure-code/thrashosds-health.yaml b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/thrashosds-health.yaml
new file mode 120000
index 00000000..a18eda11
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split-erasure-code/thrashosds-health.yaml
@@ -0,0 +1 @@
+../../../../../qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/% b/qa/suites/upgrade/mimic-x/stress-split/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/%
diff --git a/qa/suites/upgrade/mimic-x/stress-split/.qa b/qa/suites/upgrade/mimic-x/stress-split/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/0-cluster/+ b/qa/suites/upgrade/mimic-x/stress-split/0-cluster/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/0-cluster/+
diff --git a/qa/suites/upgrade/mimic-x/stress-split/0-cluster/.qa b/qa/suites/upgrade/mimic-x/stress-split/0-cluster/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/0-cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/0-cluster/openstack.yaml b/qa/suites/upgrade/mimic-x/stress-split/0-cluster/openstack.yaml
new file mode 100644
index 00000000..5caffc35
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/0-cluster/openstack.yaml
@@ -0,0 +1,6 @@
+openstack:
+ - machine:
+ disk: 100 # GB
+ - volumes: # attached to each instance
+ count: 4
+ size: 30 # GB
diff --git a/qa/suites/upgrade/mimic-x/stress-split/0-cluster/start.yaml b/qa/suites/upgrade/mimic-x/stress-split/0-cluster/start.yaml
new file mode 100644
index 00000000..433f3534
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/0-cluster/start.yaml
@@ -0,0 +1,42 @@
+meta:
+- desc: |
+ Run ceph on two nodes,
+ with a separate client-only node.
+ Use xfs beneath the osds.
+ #Note-To enable RHEL runs on ovh nodes, add the following to overrides
+ #ansible.cephlab:
+ # skip_tags: entitlements,packages,repos
+overrides:
+ ceph:
+ mon_bind_msgr2: false
+ mon_bind_addrvec: false
+ fs: xfs
+ log-whitelist:
+ - overall HEALTH_
+ - \(MON_DOWN\)
+ - \(MGR_DOWN\)
+ - \(MON_MSGR2_NOT_ENABLED\)
+ conf:
+ global:
+ enable experimental unrecoverable data corrupting features: "*"
+ mon warn on msgr2 not enabled: false
+ mon:
+ mon warn on osd down out interval zero: false
+roles:
+- - mon.a
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+- - mon.b
+ - osd.4
+ - osd.5
+ - osd.6
+ - osd.7
+- - mon.c
+- - osd.8
+ - osd.9
+ - osd.10
+ - osd.11
+- - client.0
diff --git a/qa/suites/upgrade/mimic-x/stress-split/1-ceph-install/.qa b/qa/suites/upgrade/mimic-x/stress-split/1-ceph-install/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/1-ceph-install/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/1-ceph-install/mimic.yaml b/qa/suites/upgrade/mimic-x/stress-split/1-ceph-install/mimic.yaml
new file mode 100644
index 00000000..ae2fa2f5
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/1-ceph-install/mimic.yaml
@@ -0,0 +1,29 @@
+meta:
+- desc: install ceph/mimic latest
+tasks:
+- install:
+ branch: mimic
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-diskprediction-cloud
+ - ceph-mgr-rook
+ - ceph-mgr-ssh
+ extra_packages: ['librados2']
+- print: "**** done install mimic"
+- ceph:
+ conf:
+ global:
+ bluestore_warn_on_legacy_statfs: false
+ mon pg warn min per osd: 0
+- exec:
+ osd.0:
+ - ceph osd require-osd-release mimic
+ - ceph osd set-require-min-compat-client mimic
+- print: "**** done ceph"
+overrides:
+ ceph:
+ conf:
+ mon:
+ mon warn on osd down out interval zero: false
diff --git a/qa/suites/upgrade/mimic-x/stress-split/1.1-pg-log-overrides/normal_pg_log.yaml b/qa/suites/upgrade/mimic-x/stress-split/1.1-pg-log-overrides/normal_pg_log.yaml
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/1.1-pg-log-overrides/normal_pg_log.yaml
@@ -0,0 +1 @@
+
diff --git a/qa/suites/upgrade/mimic-x/stress-split/1.1-pg-log-overrides/short_pg_log.yaml b/qa/suites/upgrade/mimic-x/stress-split/1.1-pg-log-overrides/short_pg_log.yaml
new file mode 100644
index 00000000..e31e37ba
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/1.1-pg-log-overrides/short_pg_log.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd min pg log entries: 1
+ osd max pg log entries: 2
diff --git a/qa/suites/upgrade/mimic-x/stress-split/2-partial-upgrade/.qa b/qa/suites/upgrade/mimic-x/stress-split/2-partial-upgrade/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/2-partial-upgrade/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/2-partial-upgrade/firsthalf.yaml b/qa/suites/upgrade/mimic-x/stress-split/2-partial-upgrade/firsthalf.yaml
new file mode 100644
index 00000000..c88a297a
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/2-partial-upgrade/firsthalf.yaml
@@ -0,0 +1,14 @@
+meta:
+- desc: |
+ install upgrade ceph/-x on 2/3 of cluster
+ restart : mons, osd 0-7
+tasks:
+- install.upgrade:
+ mon.a:
+ mon.b:
+ mon.c:
+- print: "**** done install.upgrade first 3 nodes"
+- ceph.restart:
+ daemons: [mon.a,mon.b,mon.c,mgr.x,osd.0,osd.1,osd.2,osd.3,osd.4,osd.5,osd.6,osd.7]
+ mon-health-to-clog: false
+- print: "**** done ceph.restart all mons and 2/3 of osds"
diff --git a/qa/suites/upgrade/mimic-x/stress-split/3-thrash/.qa b/qa/suites/upgrade/mimic-x/stress-split/3-thrash/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/3-thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/3-thrash/default.yaml b/qa/suites/upgrade/mimic-x/stress-split/3-thrash/default.yaml
new file mode 100644
index 00000000..e0f317b0
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/3-thrash/default.yaml
@@ -0,0 +1,26 @@
+meta:
+- desc: |
+ randomly kill and revive osd
+ small chance to increase the number of pgs
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - wrongly marked me down
+ - objects unfound and apparently lost
+ - log bound mismatch
+tasks:
+- parallel:
+ - stress-tasks
+stress-tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgpnum_fix: 1
+ chance_thrash_cluster_full: 0
+ chance_thrash_pg_upmap: 0
+ chance_thrash_pg_upmap_items: 0
+ disable_objectstore_tool_tests: true
+ chance_force_recovery: 0
+ aggressive_pg_num_changes: false
+- print: "**** done thrashosds 3-thrash"
diff --git a/qa/suites/upgrade/mimic-x/stress-split/4-workload/+ b/qa/suites/upgrade/mimic-x/stress-split/4-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/4-workload/+
diff --git a/qa/suites/upgrade/mimic-x/stress-split/4-workload/.qa b/qa/suites/upgrade/mimic-x/stress-split/4-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/4-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/4-workload/radosbench.yaml b/qa/suites/upgrade/mimic-x/stress-split/4-workload/radosbench.yaml
new file mode 100644
index 00000000..115939e6
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/4-workload/radosbench.yaml
@@ -0,0 +1,52 @@
+meta:
+- desc: |
+ run randomized correctness test for rados operations
+ generate write load with rados bench
+stress-tasks:
+- full_sequential:
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+- print: "**** done radosbench 7-workload"
diff --git a/qa/suites/upgrade/mimic-x/stress-split/4-workload/rbd-cls.yaml b/qa/suites/upgrade/mimic-x/stress-split/4-workload/rbd-cls.yaml
new file mode 100644
index 00000000..52ccaec9
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/4-workload/rbd-cls.yaml
@@ -0,0 +1,10 @@
+meta:
+- desc: |
+ run basic cls tests for rbd
+stress-tasks:
+- workunit:
+ branch: mimic
+ clients:
+ client.0:
+ - cls/test_cls_rbd.sh
+- print: "**** done cls/test_cls_rbd.sh 5-workload"
diff --git a/qa/suites/upgrade/mimic-x/stress-split/4-workload/rbd-import-export.yaml b/qa/suites/upgrade/mimic-x/stress-split/4-workload/rbd-import-export.yaml
new file mode 100644
index 00000000..1761f4f9
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/4-workload/rbd-import-export.yaml
@@ -0,0 +1,12 @@
+meta:
+- desc: |
+ run basic import/export cli tests for rbd
+stress-tasks:
+- workunit:
+ branch: mimic
+ clients:
+ client.0:
+ - rbd/import_export.sh
+ env:
+ RBD_CREATE_ARGS: --new-format
+- print: "**** done rbd/import_export.sh 5-workload"
diff --git a/qa/suites/upgrade/mimic-x/stress-split/4-workload/rbd_api.yaml b/qa/suites/upgrade/mimic-x/stress-split/4-workload/rbd_api.yaml
new file mode 100644
index 00000000..8f010cb2
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/4-workload/rbd_api.yaml
@@ -0,0 +1,10 @@
+meta:
+- desc: |
+ librbd C and C++ api tests
+stress-tasks:
+- workunit:
+ branch: mimic
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+- print: "**** done rbd/test_librbd.sh 7-workload"
diff --git a/qa/suites/upgrade/mimic-x/stress-split/4-workload/readwrite.yaml b/qa/suites/upgrade/mimic-x/stress-split/4-workload/readwrite.yaml
new file mode 100644
index 00000000..41e34d6d
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/4-workload/readwrite.yaml
@@ -0,0 +1,16 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool,
+ using only reads, writes, and deletes
+stress-tasks:
+- full_sequential:
+ - rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ write_append_excl: false
+ op_weights:
+ read: 45
+ write: 45
+ delete: 10
+- print: "**** done rados/readwrite 5-workload"
diff --git a/qa/suites/upgrade/mimic-x/stress-split/4-workload/rgw_ragweed_prepare.yaml b/qa/suites/upgrade/mimic-x/stress-split/4-workload/rgw_ragweed_prepare.yaml
new file mode 100644
index 00000000..b1f06bcc
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/4-workload/rgw_ragweed_prepare.yaml
@@ -0,0 +1,14 @@
+meta:
+- desc: |
+ rgw ragweed prepare before upgrade
+stress-tasks:
+ - full_sequential:
+ - sequential:
+ - rgw:
+ - client.0
+ - ragweed:
+ client.0:
+ default-branch: ceph-nautilus
+ rgw_server: client.0
+ stages: prepare
+ - print: "**** done rgw ragweed prepare 4-workload"
diff --git a/qa/suites/upgrade/mimic-x/stress-split/4-workload/snaps-few-objects.yaml b/qa/suites/upgrade/mimic-x/stress-split/4-workload/snaps-few-objects.yaml
new file mode 100644
index 00000000..f56d0de0
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/4-workload/snaps-few-objects.yaml
@@ -0,0 +1,18 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool with snapshot operations
+stress-tasks:
+- full_sequential:
+ - rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+- print: "**** done rados/snaps-few-objects 5-workload"
diff --git a/qa/suites/upgrade/mimic-x/stress-split/5-finish-upgrade.yaml b/qa/suites/upgrade/mimic-x/stress-split/5-finish-upgrade.yaml
new file mode 100644
index 00000000..a76cda76
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/5-finish-upgrade.yaml
@@ -0,0 +1,14 @@
+tasks:
+- install.upgrade:
+ osd.8:
+ client.0:
+- ceph.restart:
+ daemons: [osd.8, osd.9, osd.10, osd.11]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- exec:
+ osd.0:
+ - ceph osd set pglog_hardlimit
+ - ceph osd dump --format=json-pretty | grep "flags"
+- print: "**** try to set pglog_hardlimit again, should succeed"
+
diff --git a/qa/suites/upgrade/mimic-x/stress-split/6-nautilus.yaml b/qa/suites/upgrade/mimic-x/stress-split/6-nautilus.yaml
new file mode 120000
index 00000000..9e99b7d2
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/6-nautilus.yaml
@@ -0,0 +1 @@
+.qa/releases/nautilus.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/6.1-msgr2.yaml b/qa/suites/upgrade/mimic-x/stress-split/6.1-msgr2.yaml
new file mode 100644
index 00000000..ad3858e9
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/6.1-msgr2.yaml
@@ -0,0 +1,5 @@
+tasks:
+- exec:
+ mon.a:
+ - ceph mon enable-msgr2
+- ceph.healthy:
diff --git a/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/+ b/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/+
diff --git a/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/.qa b/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/rbd-python.yaml b/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/rbd-python.yaml
new file mode 100644
index 00000000..a1a3d9e9
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/rbd-python.yaml
@@ -0,0 +1,10 @@
+meta:
+- desc: |
+ librbd python api tests
+tasks:
+- workunit:
+ branch: mimic
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
+- print: "**** done rbd/test_librbd_python.sh 9-workload"
diff --git a/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/rgw-swift-ragweed_check.yaml b/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/rgw-swift-ragweed_check.yaml
new file mode 100644
index 00000000..8867a409
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/rgw-swift-ragweed_check.yaml
@@ -0,0 +1,19 @@
+meta:
+- desc: |
+ swift api tests for rgw
+ rgw ragweed check after upgrade
+tasks:
+- rgw:
+ client.0:
+- print: "**** done rgw 7-workload"
+- swift:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+- print: "**** done swift 7-workload"
+- ragweed:
+ client.0:
+ default-branch: ceph-nautilus
+ rgw_server: client.0
+ stages: check
+- print: "**** done rgw ragweed check 7-workload"
diff --git a/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/snaps-many-objects.yaml b/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/snaps-many-objects.yaml
new file mode 100644
index 00000000..805bf97c
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/snaps-many-objects.yaml
@@ -0,0 +1,16 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool with snapshot operations
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
diff --git a/qa/suites/upgrade/mimic-x/stress-split/objectstore/.qa b/qa/suites/upgrade/mimic-x/stress-split/objectstore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/objectstore/bluestore-bitmap.yaml b/qa/suites/upgrade/mimic-x/stress-split/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/objectstore/filestore-xfs.yaml b/qa/suites/upgrade/mimic-x/stress-split/objectstore/filestore-xfs.yaml
new file mode 120000
index 00000000..03750e5a
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/objectstore/filestore-xfs.yaml
@@ -0,0 +1 @@
+../../../../../objectstore/filestore-xfs.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/supported-all-distro b/qa/suites/upgrade/mimic-x/stress-split/supported-all-distro
new file mode 120000
index 00000000..44d01d18
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/supported-all-distro
@@ -0,0 +1 @@
+../../../../../qa/distros/supported-all-distro/ \ No newline at end of file
diff --git a/qa/suites/upgrade/mimic-x/stress-split/thrashosds-health.yaml b/qa/suites/upgrade/mimic-x/stress-split/thrashosds-health.yaml
new file mode 120000
index 00000000..a18eda11
--- /dev/null
+++ b/qa/suites/upgrade/mimic-x/stress-split/thrashosds-health.yaml
@@ -0,0 +1 @@
+../../../../../qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/.qa b/qa/suites/upgrade/nautilus-p2p/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/% b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/%
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/point-to-point-upgrade.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/point-to-point-upgrade.yaml
new file mode 100644
index 00000000..b25b5176
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/point-to-point-upgrade.yaml
@@ -0,0 +1,182 @@
+meta:
+- desc: |
+ Run ceph on two nodes, using one of them as a client,
+ with a separate client-only node.
+ Use xfs beneath the osds.
+ install ceph/nautilus v14.2.2 point version
+ run workload and upgrade-sequence in parallel
+ (every point reslease should be tested)
+ run workload and upgrade-sequence in parallel
+ install ceph/nautilus latest version
+ run workload and upgrade-sequence in parallel
+overrides:
+ ceph:
+ log-whitelist:
+ - evicting unresponsive client
+ - reached quota
+ - scrub
+ - osd_map_max_advance
+ - wrongly marked
+ - FS_DEGRADED
+ - POOL_APP_NOT_ENABLED
+ - CACHE_POOL_NO_HIT_SET
+ - POOL_FULL
+ - SMALLER_PG
+ - pool\(s\) full
+ - OSD_DOWN
+ - missing hit_sets
+ - CACHE_POOL_NEAR_FULL
+ - PG_AVAILABILITY
+ - PG_DEGRADED
+ - application not enabled
+ - cache pools at or near target size
+ - filesystem is degraded
+ - OBJECT_MISPLACED
+ ### ref: https://tracker.ceph.com/issues/40251
+ #removed see ^ - failed to encode map
+
+ fs: xfs
+
+ conf:
+ global:
+ mon_warn_on_pool_no_app: false
+ mon pg warn min per osd: 0
+ mon:
+ mon debug unsafe allow tier with nonempty snaps: true
+ osd:
+ osd map max advance: 1000
+ osd_class_default_list: "*"
+ osd_class_load_list: "*"
+ client:
+ rgw_crypt_require_ssl: false
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo= testkey-2=aWIKTWFrZWZpbGUKbWFuCm91dApzcmMKVGVzdGluZwo=
+roles:
+- - mon.a
+ - mds.a
+ - osd.0
+ - osd.1
+ - osd.2
+ - mgr.x
+- - mon.b
+ - mon.c
+ - osd.3
+ - osd.4
+ - osd.5
+ - client.0
+- - client.1
+openstack:
+- volumes: # attached to each instance
+ count: 3
+ size: 30 # GB
+tasks:
+# v14.2.0 removed per http://tracker.ceph.com/issues/40251
+- print: "**** done nautilus v14.2.2 about to install"
+- install:
+ tag: v14.2.2
+ # line below can be removed its from jewel test
+ #exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev', 'librgw2']
+- print: "**** done v14.2.2 install"
+- ceph:
+ fs: xfs
+ add_osds_to_crush: true
+- print: "**** done ceph xfs"
+- sequential:
+ - workload
+- print: "**** done workload v14.2.2"
+
+
+# v14.2.1 removed per http://tracker.ceph.com/issues/40251
+# v14.2.2
+
+####### upgrade to v14.2.?? PLACEHOLDER
+#- install.upgrade:
+# #exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev']
+# mon.a:
+# tag: v14.2.??
+# mon.b:
+# tag: v14.2.??
+# # Note that client.a IS NOT upgraded at this point
+#- parallel:
+# - workload_nautilus
+# - upgrade-sequence_nautilus
+#- print: "**** done parallel nautilus v14.2.??"
+
+#### upgrade to latest nautilus
+- install.upgrade:
+ mon.a:
+ mon.b:
+- parallel:
+ - workload_nautilus
+ - upgrade-sequence_nautilus
+- print: "**** done parallel nautilus branch"
+
+#######################
+workload:
+ sequential:
+ - workunit:
+ clients:
+ client.0:
+ - suites/blogbench.sh
+workload_nautilus:
+ full_sequential:
+ - workunit:
+ branch: nautilus
+ #tag: v14.2.0
+ clients:
+ client.1:
+ - rados/test.sh
+ - cls
+ env:
+ CLS_RBD_GTEST_FILTER: '*:-TestClsRbd.snapshots_namespaces'
+ - print: "**** done rados/test.sh & cls workload_nautilus"
+ - sequential:
+ - rgw: [client.0]
+ - print: "**** done rgw workload_nautilus"
+ - s3tests:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+ scan_for_encryption_keys: false
+ - print: "**** done s3tests workload_nautilus"
+ - rbd_fsx:
+ clients: [client.0]
+ size: 134217728
+ - print: "**** done rbd_fsx workload_nautilus"
+
+upgrade-sequence_nautilus:
+ sequential:
+ - print: "**** done branch: nautilus install.upgrade"
+ - ceph.restart: [mds.a]
+ - sleep:
+ duration: 60
+ - ceph.restart: [osd.0]
+ - sleep:
+ duration: 30
+ - ceph.restart: [osd.1]
+ - sleep:
+ duration: 30
+ - ceph.restart: [osd.2]
+ - sleep:
+ duration: 30
+ - ceph.restart: [osd.3]
+ - sleep:
+ duration: 30
+ - ceph.restart: [osd.4]
+ - sleep:
+ duration: 30
+ - ceph.restart: [osd.5]
+ - sleep:
+ duration: 60
+ - ceph.restart: [mgr.x]
+ - sleep:
+ duration: 60
+ - ceph.restart: [mon.a]
+ - sleep:
+ duration: 60
+ - ceph.restart: [mon.b]
+ - sleep:
+ duration: 60
+ - ceph.restart: [mon.c]
+ - sleep:
+ duration: 60
+ - print: "**** done ceph.restart all nautilus branch mds/osd/mon"
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/supported-all-distro b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/supported-all-distro
new file mode 120000
index 00000000..0f102120
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/supported-all-distro
@@ -0,0 +1 @@
+../../../../distros/supported-all-distro/ \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/% b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/%
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/%
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/.qa b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/+ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/+
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/.qa b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/openstack.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/openstack.yaml
new file mode 100644
index 00000000..5caffc35
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/openstack.yaml
@@ -0,0 +1,6 @@
+openstack:
+ - machine:
+ disk: 100 # GB
+ - volumes: # attached to each instance
+ count: 4
+ size: 30 # GB
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/start.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/start.yaml
new file mode 100644
index 00000000..7cec8127
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/start.yaml
@@ -0,0 +1,35 @@
+meta:
+- desc: |
+ Run ceph on two nodes,
+ with a separate client-only node.
+ Use xfs beneath the osds.
+overrides:
+ ceph:
+ fs: xfs
+ log-whitelist:
+ - evicting unresponsive client
+ - overall HEALTH_
+ - \(MON_DOWN\)
+ - \(MGR_DOWN\)
+ ### ref: https://tracker.ceph.com/issues/40251
+ #removed see ^ - failed to encode map
+ conf:
+ global:
+ enable experimental unrecoverable data corrupting features: "*"
+ mon pg warn min per osd: 0
+ mon:
+ mon warn on osd down out interval zero: false
+roles:
+- - mon.a
+ - mon.b
+ - mon.c
+ - mgr.x
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+- - osd.4
+ - osd.5
+ - osd.6
+ - osd.7
+- - client.0
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/1-ceph-install/.qa b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/1-ceph-install/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/1-ceph-install/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/1-ceph-install/nautilus.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/1-ceph-install/nautilus.yaml
new file mode 100644
index 00000000..75dc71fe
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/1-ceph-install/nautilus.yaml
@@ -0,0 +1,19 @@
+meta:
+- desc: install ceph/nautilus v14.2.2
+tasks:
+- install:
+ tag: v14.2.2
+ exclude_packages: ['librados3']
+ extra_packages: ['librados2']
+- print: "**** done install nautilus v14.2.2"
+- ceph:
+- exec:
+ osd.0:
+ - ceph osd require-osd-release nautilus
+ - ceph osd set-require-min-compat-client nautilus
+- print: "**** done ceph"
+overrides:
+ ceph:
+ conf:
+ mon:
+ mon warn on osd down out interval zero: false
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/1.1.short_pg_log.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/1.1.short_pg_log.yaml
new file mode 120000
index 00000000..62010f4f
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/1.1.short_pg_log.yaml
@@ -0,0 +1 @@
+../../../../overrides/short_pg_log.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/2-partial-upgrade/.qa b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/2-partial-upgrade/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/2-partial-upgrade/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/2-partial-upgrade/firsthalf.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/2-partial-upgrade/firsthalf.yaml
new file mode 100644
index 00000000..02ba5c1b
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/2-partial-upgrade/firsthalf.yaml
@@ -0,0 +1,13 @@
+meta:
+- desc: |
+ install upgrade ceph/-x on one node only
+ 1st half
+ restart : osd.0,1,2,3
+tasks:
+- install.upgrade:
+ osd.0:
+- print: "**** done install.upgrade osd.0"
+- ceph.restart:
+ daemons: [mon.a,mon.b,mon.c,mgr.x,osd.0,osd.1,osd.2,osd.3]
+ mon-health-to-clog: false
+- print: "**** done ceph.restart 1st half"
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/3-thrash/.qa b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/3-thrash/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/3-thrash/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/3-thrash/default.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/3-thrash/default.yaml
new file mode 100644
index 00000000..49e6f84f
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/3-thrash/default.yaml
@@ -0,0 +1,27 @@
+meta:
+- desc: |
+ randomly kill and revive osd
+ small chance to increase the number of pgs
+overrides:
+ ceph:
+ log-whitelist:
+ - but it is still running
+ - wrongly marked me down
+ - objects unfound and apparently lost
+ - log bound mismatch
+ ### ref: https://tracker.ceph.com/issues/40251
+ - failed to encode map
+tasks:
+- parallel:
+ - stress-tasks
+stress-tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgpnum_fix: 1
+ chance_thrash_cluster_full: 0
+ chance_thrash_pg_upmap: 0
+ chance_thrash_pg_upmap_items: 0
+ disable_objectstore_tool_tests: true
+ chance_force_recovery: 0
+- print: "**** done thrashosds 3-thrash"
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/+ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/+
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/.qa b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/fsx.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/fsx.yaml
new file mode 100644
index 00000000..fd4081f2
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/fsx.yaml
@@ -0,0 +1,8 @@
+meta:
+- desc: |
+ run basic fsx tests for rbd
+stress-tasks:
+- rbd_fsx:
+ clients: [client.0]
+ size: 134217728
+- print: "**** done rbd_fsx 4-workload"
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/radosbench.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/radosbench.yaml
new file mode 100644
index 00000000..c545936c
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/radosbench.yaml
@@ -0,0 +1,52 @@
+meta:
+- desc: |
+ run randomized correctness test for rados operations
+ generate write load with rados bench
+stress-tasks:
+- full_sequential:
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+ - radosbench:
+ clients: [client.0]
+ time: 90
+- print: "**** done radosbench 4-workload"
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/rbd-cls.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/rbd-cls.yaml
new file mode 100644
index 00000000..0c0f512a
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/rbd-cls.yaml
@@ -0,0 +1,10 @@
+meta:
+- desc: |
+ run basic cls tests for rbd
+stress-tasks:
+- workunit:
+ branch: nautilus
+ clients:
+ client.0:
+ - cls/test_cls_rbd.sh
+- print: "**** done cls/test_cls_rbd.sh 4-workload"
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/rbd-import-export.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/rbd-import-export.yaml
new file mode 100644
index 00000000..2f7cf3ba
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/rbd-import-export.yaml
@@ -0,0 +1,12 @@
+meta:
+- desc: |
+ run basic import/export cli tests for rbd
+stress-tasks:
+- workunit:
+ branch: nautilus
+ clients:
+ client.0:
+ - rbd/import_export.sh
+ env:
+ RBD_CREATE_ARGS: --new-format
+- print: "**** done rbd/import_export.sh 4-workload"
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/rbd_api.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/rbd_api.yaml
new file mode 100644
index 00000000..f25e4dd4
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/rbd_api.yaml
@@ -0,0 +1,10 @@
+meta:
+- desc: |
+ librbd C and C++ api tests
+stress-tasks:
+- workunit:
+ branch: nautilus
+ clients:
+ client.0:
+ - rbd/test_librbd.sh
+- print: "**** done rbd/test_librbd.sh 4-workload"
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/readwrite.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/readwrite.yaml
new file mode 100644
index 00000000..45686899
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/readwrite.yaml
@@ -0,0 +1,16 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool,
+ using only reads, writes, and deletes
+stress-tasks:
+- full_sequential:
+ - rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ write_append_excl: false
+ op_weights:
+ read: 45
+ write: 45
+ delete: 10
+- print: "**** done rados/readwrite 4-workload"
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/snaps-few-objects.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/snaps-few-objects.yaml
new file mode 100644
index 00000000..ae232d86
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/4-workload/snaps-few-objects.yaml
@@ -0,0 +1,18 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool with snapshot operations
+stress-tasks:
+- full_sequential:
+ - rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 50
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
+- print: "**** done rados/snaps-few-objects 4-workload"
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/5-finish-upgrade.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/5-finish-upgrade.yaml
new file mode 100644
index 00000000..803737c7
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/5-finish-upgrade.yaml
@@ -0,0 +1,8 @@
+tasks:
+- install.upgrade:
+ osd.4:
+ client.0:
+- ceph.restart:
+ daemons: [osd.4, osd.5, osd.6, osd.7]
+ wait-for-healthy: false
+ wait-for-osds-up: true
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/+ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/+
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/+
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/.qa b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/.qa
new file mode 120000
index 00000000..fea2489f
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/rbd-python.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/rbd-python.yaml
new file mode 100644
index 00000000..dbfde7f7
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/rbd-python.yaml
@@ -0,0 +1,10 @@
+meta:
+- desc: |
+ librbd python api tests
+tasks:
+- workunit:
+ tag: v14.2.10
+ clients:
+ client.0:
+ - rbd/test_librbd_python.sh
+- print: "**** done rbd/test_librbd_python.sh 7-workload"
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/rgw-swift.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/rgw-swift.yaml
new file mode 100644
index 00000000..1b5710b1
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/rgw-swift.yaml
@@ -0,0 +1,12 @@
+meta:
+- desc: |
+ swift api tests for rgw
+tasks:
+- rgw:
+ client.0:
+- print: "**** done rgw 9-workload"
+- swift:
+ client.0:
+ force-branch: ceph-nautilus
+ rgw_server: client.0
+- print: "**** done swift 9-workload"
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/snaps-many-objects.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/snaps-many-objects.yaml
new file mode 100644
index 00000000..805bf97c
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/7-final-workload/snaps-many-objects.yaml
@@ -0,0 +1,16 @@
+meta:
+- desc: |
+ randomized correctness test for rados operations on a replicated pool with snapshot operations
+tasks:
+- rados:
+ clients: [client.0]
+ ops: 4000
+ objects: 500
+ write_append_excl: false
+ op_weights:
+ read: 100
+ write: 100
+ delete: 50
+ snap_create: 50
+ snap_remove: 50
+ rollback: 50
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/.qa b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/.qa
new file mode 120000
index 00000000..a602a035
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/bluestore-bitmap.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 00000000..a59cf517
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/default.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/default.yaml
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/default.yaml
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/filestore-xfs.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/filestore-xfs.yaml
new file mode 120000
index 00000000..41f2a9d1
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/objectstore/filestore-xfs.yaml
@@ -0,0 +1 @@
+.qa/objectstore/filestore-xfs.yaml \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/supported-all-distro b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/supported-all-distro
new file mode 120000
index 00000000..0f102120
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/supported-all-distro
@@ -0,0 +1 @@
+../../../../distros/supported-all-distro/ \ No newline at end of file
diff --git a/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/thrashosds-health.yaml b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/thrashosds-health.yaml
new file mode 120000
index 00000000..e0426dbe
--- /dev/null
+++ b/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/thrashosds-health.yaml
@@ -0,0 +1 @@
+../../../../tasks/thrashosds-health.yaml \ No newline at end of file