Testing - michaelsevilla/mantle-popper GitHub Wiki

Testing

We use the ceph-qa-suite. First, make sure you have a sane environment by setting up the virtual environment as specified in the vstart runner (here). You need to make 2 adjustments:

  1. Install packages into the Python virtual environment:

    cd /home/msevilla/teuthology
    mkdir virtualenv
    virtualenv virtualenv
    source virtualenv/bin/activate
    pip install -U setuptools manhole python-dateutil --upgrade pytz apache-libcloud
    apt-get update -y; apt-get install -y libffi-dev
    pip install gevent paramiko cryptography cffi pyaml configobj requests netaddr pexpect 
    pip install -U cffi
    
  2. You should run everything as the root user (since ceph-fuse will only mount if you are the superuser) but must make one small change for this to work:

    diff --git a/tasks/cephfs/vstart_runner.py b/tasks/cephfs/vstart_runner.py
    index 3d0c7da..1fa05b9 100644
    --- a/tasks/cephfs/vstart_runner.py
    +++ b/tasks/cephfs/vstart_runner.py
    @@ -257,7 +257,7 @@ class LocalDaemon(object):
             Return PID as an integer or None if not found
             """
             ps_txt = self.controller.run(
    -            args=["ps", "-xwwu"+str(os.getuid())]
    +            args=["ps", "-xwwu1"]
             ).stdout.getvalue().strip()
             lines = ps_txt.split("\n")[1:]
    

After that you should be able to do everything from the vstart_runner.py script:

sudo su root
cd /home/msevilla/mantle/src
OSD=3 MON=1 MDS=2 ./vstart.sh -n
PYTHONPATH=/home/msevilla/teuthology/:/home/msevilla/ceph-qa-suite/ python /home/msevilla/ceph-qa-suite/tasks/cephfs/vstart_runner.py tasks.cephfs.test_mantle
PYTHONPATH=/home/msevilla/teuthology/:/ceph/qa/ python /ceph/qa/tasks/vstart_runner.py tasks.cephfs.test_mantle

I did NOT test:

  • invalid balancer log

  • loading lua state

  • loading lua string

  • Script invalid Lua or does not return array

  • Script not in RADOS

  • Script not set ("")