When a Ceph user hits an issue, they usually have to gather a lot of info from the
command-line interface and manually open an issue in the Ceph defect tracker.
This projects aims to provide Ceph users with the ability to report issues directly from
the Ceph-Dashboard UI, and attach all the available information to the report.
This project will create a test framework that will take care of creating different laboratory environments using VMS. The framework will be able to execute tests written in Gherkin language to create and test the different functionalities of a Ceph cluster. The project aims to provide to the Ceph project a very easy way to create new e2e and integration tests for the orchestrators
s3-tests uses a limited subset of Boto to test RGW functionality. Write new tests that attempt to cover all lines of various S3 SDKs to test SDK compatibility issues. This will cover as many SDKs that implement S3 as possible, starting with Boto, Boto3, and transitioning to Go. Explicitly would be measuring test cases code coverage of the SDKs and correct responses (AWS S3 vs. RGW).
Ceph is a large scale distributed system, which requries extensive testing. Thousands of test jobs run on hundreds of nodes every day in the sepia lab.
A huge amount of machine time is used to validate changes before they are merged to Ceph. These test suites can take hours once they start, and due to demand may be queued for days before beginning to run.
The goal of this project is to optimize the test suites and how they are run to improve development velocity.
There are a couple ways to do this:
1. Optimize how tests are run by identifying long running tests and examining timing across historical test runs and optimize common areas (see timing.yaml for past runs)
2. Analyze and optimize the suites to ensure the test coverage is meaningful. This could be done by exploring correlations between different tests and historical pass/fail. Considering ways to maintain the same coverage using less total machine time by changing suite structure.Suites are described here: https://github.com/ceph/ceph/blob/master/qa/README. The rados suite is a useful place to start, having the largest combination of configurations
Cephadm uses https://pypi.org/project/execnet/ to connect to remote hosts. Unfortunately execnet is no longer in active development. cephadm needs to connect to 1000s of hosts per SSH. The idea is to replace execnet with a different python libary that provides better scalability and better user experience.