From: Josh Durgin Date: Wed, 20 Jul 2011 22:43:31 +0000 (-0700) Subject: systest: move pool deletion into its own file X-Git-Tag: v0.33~52 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e6ff13d878c6c6623ff68c1b5e40c1aa7aa44dfb;p=ceph.git systest: move pool deletion into its own file Signed-off-by: Josh Durgin --- diff --git a/src/Makefile.am b/src/Makefile.am index e6ee312ba319..c08744067dc4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -399,6 +399,7 @@ bin_DEBUGPROGRAMS += testrados_open_pools_parallel testrados_delete_pools_parallel_SOURCES = \ test/system/rados_delete_pools_parallel.cc \ test/system/st_rados_create_pool.cc \ + test/system/st_rados_delete_pool.cc \ test/system/st_rados_list_objects.cc testrados_delete_pools_parallel_LDADD = libsystest.la librados.la bin_DEBUGPROGRAMS += testrados_delete_pools_parallel diff --git a/src/test/system/rados_delete_pools_parallel.cc b/src/test/system/rados_delete_pools_parallel.cc index 3f55f1bcdc48..bfdd7fd2fd24 100644 --- a/src/test/system/rados_delete_pools_parallel.cc +++ b/src/test/system/rados_delete_pools_parallel.cc @@ -15,6 +15,7 @@ #include "cross_process_sem.h" #include "include/rados/librados.h" #include "st_rados_create_pool.h" +#include "st_rados_delete_pool.h" #include "st_rados_list_objects.h" #include "systest_runnable.h" #include "systest_settings.h" @@ -47,48 +48,6 @@ static int g_num_objects = 50; * * DO NOT EXPECT * hangs, crashes */ -class StRadosDeletePool : public SysTestRunnable -{ -public: - StRadosDeletePool(int argc, const char **argv, - CrossProcessSem *pool_setup_sem, CrossProcessSem *delete_pool_sem, - const std::string &pool_name) - : SysTestRunnable(argc, argv), - m_pool_setup_sem(pool_setup_sem), m_delete_pool_sem(delete_pool_sem), - m_pool_name(pool_name) - { - } - - ~StRadosDeletePool() - { - } - - int run() - { - rados_t cl; - RETURN1_IF_NONZERO(rados_create(&cl, NULL)); - rados_conf_parse_argv(cl, m_argc, m_argv); - RETURN1_IF_NONZERO(rados_conf_read_file(cl, NULL)); - RETURN1_IF_NONZERO(rados_connect(cl)); - m_pool_setup_sem->wait(); - m_pool_setup_sem->post(); - - rados_ioctx_t io_ctx; - RETURN1_IF_NOT_VAL(-EEXIST, rados_pool_create(cl, m_pool_name.c_str())); - RETURN1_IF_NONZERO(rados_ioctx_create(cl, m_pool_name.c_str(), &io_ctx)); - rados_ioctx_destroy(io_ctx); - rados_pool_delete(cl, m_pool_name.c_str()); - if (m_delete_pool_sem) - m_delete_pool_sem->post(); - rados_shutdown(cl); - return 0; - } - -private: - CrossProcessSem *m_pool_setup_sem; - CrossProcessSem *m_delete_pool_sem; - std::string m_pool_name; -}; const char *get_id_str() { diff --git a/src/test/system/st_rados_delete_pool.cc b/src/test/system/st_rados_delete_pool.cc new file mode 100644 index 000000000000..e06bf5a864d4 --- /dev/null +++ b/src/test/system/st_rados_delete_pool.cc @@ -0,0 +1,59 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab +/* +* Ceph - scalable distributed file system +* +* Copyright (C) 2011 New Dream Network +* +* This is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License version 2.1, as published by the Free Software +* Foundation. See file COPYING. +* +*/ + +#include "cross_process_sem.h" +#include "include/rados/librados.h" +#include "st_rados_delete_pool.h" +#include "systest_runnable.h" +#include "systest_settings.h" + +#include + +StRadosDeletePool:: +StRadosDeletePool(int argc, const char **argv, + CrossProcessSem *pool_setup_sem, CrossProcessSem *delete_pool_sem, + const std::string &pool_name) + : SysTestRunnable(argc, argv), + m_pool_setup_sem(pool_setup_sem), m_delete_pool_sem(delete_pool_sem), + m_pool_name(pool_name) +{ +} + +StRadosDeletePool:: +~StRadosDeletePool() +{ +} + +int StRadosDeletePool:: +run() +{ + rados_t cl; + RETURN1_IF_NONZERO(rados_create(&cl, NULL)); + rados_conf_parse_argv(cl, m_argc, m_argv); + RETURN1_IF_NONZERO(rados_conf_read_file(cl, NULL)); + RETURN1_IF_NONZERO(rados_connect(cl)); + m_pool_setup_sem->wait(); + m_pool_setup_sem->post(); + + rados_ioctx_t io_ctx; + RETURN1_IF_NOT_VAL(-EEXIST, rados_pool_create(cl, m_pool_name.c_str())); + RETURN1_IF_NONZERO(rados_ioctx_create(cl, m_pool_name.c_str(), &io_ctx)); + rados_ioctx_destroy(io_ctx); + printf("%s: deleting pool %s\n", get_id_str(), m_pool_name.c_str()); + RETURN1_IF_NONZERO(rados_pool_delete(cl, m_pool_name.c_str())); + if (m_delete_pool_sem) + m_delete_pool_sem->post(); + rados_shutdown(cl); + return 0; +} diff --git a/src/test/system/st_rados_delete_pool.h b/src/test/system/st_rados_delete_pool.h new file mode 100644 index 000000000000..6380091e7376 --- /dev/null +++ b/src/test/system/st_rados_delete_pool.h @@ -0,0 +1,42 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab +/* +* Ceph - scalable distributed file system +* +* Copyright (C) 2011 New Dream Network +* +* This is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License version 2.1, as published by the Free Software +* Foundation. See file COPYING. +* +*/ + +#ifndef TEST_SYSTEM_ST_RADOS_DELETE_POOL_H +#define TEST_SYSTEM_ST_RADOS_DELETE_POOL_H + +#include "systest_runnable.h" + +class CrossProcessSem; + +/* + * st_rados_delete_pool + * + * Waits on pool_setup_sem, posts to it, + * deletes a pool, and posts to delete_pool_sem. + */ +class StRadosDeletePool : public SysTestRunnable +{ +public: + StRadosDeletePool(int argc, const char **argv, + CrossProcessSem *pool_setup_sem, CrossProcessSem *delete_pool_sem, + const std::string &pool_name); + ~StRadosDeletePool(); + virtual int run(); +private: + CrossProcessSem *m_pool_setup_sem; + CrossProcessSem *m_delete_pool_sem; + std::string m_pool_name; +}; + +#endif