Re: rgw: refactoring test_multi.py for teuthology

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




----- Original Message -----
> From: "Casey Bodley" <cbodley@xxxxxxxxxx>
> To: "Shilpa Manjarabad Jagannath" <smanjara@xxxxxxxxxx>
> Cc: "Ali Maredia" <amaredia@xxxxxxxxxx>, "The Sacred Order of the Squid Cybernetic" <ceph-devel@xxxxxxxxxxxxxxx>
> Sent: Wednesday, January 4, 2017 2:12:50 AM
> Subject: rgw: refactoring test_multi.py for teuthology
> 
> Hi Shilpa, Ali, and list,
> 
> The rgw multisite tests are currently running out of
> src/test/rgw/test_multi.py, and use shell scripts to set up multiple
> vstart clusters. We'd like to adapt these tests so they can run inside
> of teuthology as well (while preserving the ability to run them
> manually). Running inside of teuthology means using an existing
> multisite configuration, rather than building one up with the shell scripts.
> 
> The python script currently has classes for RGWRealm, RGWCluster, and
> RGWMulti. The RGWMulti.setup() method creates an RGWRealm and builds an
> array of RGWClusters. RGWCluster.start() calls the mstart.sh script to
> create a vstart cluster in a subdirectory. RGWRealm.init_zone() is then
> running all of the radosgw-admin commands to configure that
> zonegroup/zone/etc.
> 
> These seem like good base classes for this abstraction. For example, we
> can derive VRealm/VCluster/VMulti to represent the existing vstart
> implementation, and TRealm/TCluster/TMulti to represent their teuthology
> counterparts.
> 
> The existing unit tests only need to know the realm, which they access
> as a global variable. We can turn the generic part (the test_* functions
> and their helper functions like check_*) into a separate module like
> src/test/rgw/rgw_multi.py, and add a set_realm() function to set this
> global variable.
> 
> Then the vstart version of the test (src/test/rgw/test_multi.py) can
> import rgw_multi, instantiate its VRealm/etc to run the cluster
> creation/configuration, then pass its realm to set_realm() for the unit
> tests. In order for nosetests to find and run the test_* functions in
> rgw_multi.py, test_multi.py needs to use 'from rgw_multi import *'.
> 
> A separate python script, probably under qa/tasks/, would implement the
> TRealm/etc subclasses by making the appropriate calls into teuthology.
> Instead of creating the cluster during initialization, it would read the
> existing multisite configuration - either by interpreting the teuthology
> 'config', or by running radosgw-admin commands like 'period get'.
> 
> It seems like a good first step would be to split out the generic code
> from test_multi.py into rgw_multi.py and verify that the vstart version
> still works.
> 
> Casey

Sounds good. Thanks Casey!


> 
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux