From c0c6efb9ce3ea7ef0f62463e0c6a371a4ca0edb0 Mon Sep 17 00:00:00 2001 From: David Zafman Date: Wed, 10 Jun 2015 14:46:24 -0700 Subject: [PATCH] test: Add --dry-run and --no-overwrite testing of rados import Signed-off-by: David Zafman --- src/test/ceph_objectstore_tool.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/test/ceph_objectstore_tool.py b/src/test/ceph_objectstore_tool.py index 0ab6035b954..aca6d0d3e88 100755 --- a/src/test/ceph_objectstore_tool.py +++ b/src/test/ceph_objectstore_tool.py @@ -1109,24 +1109,41 @@ def main(argv): ret = call(cmd, shell=True, stdout=nullfd, stderr=nullfd) print "Test rados import" + first = True for osd in [f for f in os.listdir(OSDDIR) if os.path.isdir(os.path.join(OSDDIR, f)) and string.find(f, "osd") == 0]: dir = os.path.join(TESTDIR, osd) for pg in [f for f in os.listdir(dir) if os.path.isfile(os.path.join(dir, f))]: if string.find(pg, "{id}.".format(id=REPID)) != 0: continue file = os.path.join(dir, pg) + if first: + first = False + # This should do nothing + cmd = "./rados import -p {pool} --dry-run {file}".format(pool=NEWPOOL, file=file) + logging.debug(cmd) + ret = call(cmd, shell=True, stdout=nullfd) + if ret != 0: + logging.error("Rados import --dry-run failed from {file} with {ret}".format(file=file, ret=ret)) + ERRORS += 1 + cmd = "./rados -p {pool} ls".format(pool=NEWPOOL) + logging.debug(cmd) + data = check_output(cmd, shell=True) + if data: + logging.error("'{data}'".format(data=data)) + logging.error("Found objects after dry-run") + ERRORS += 1 cmd = "./rados import -p {pool} {file}".format(pool=NEWPOOL, file=file) logging.debug(cmd) ret = call(cmd, shell=True, stdout=nullfd) if ret != 0: logging.error("Rados import failed from {file} with {ret}".format(file=file, ret=ret)) ERRORS += 1 - # cmd = "./rados import -p {pool} --no-overwrite {file}".format(pool=NEWPOOL, file=file) - # logging.debug(cmd) - # ret = call(cmd, shell=True, stdout=nullfd) - # if ret != 0: - # logging.error("Import-rados failed from {file} with {ret}".format(file=file, ret=ret)) - # ERRORS += 1 + cmd = "./rados import -p {pool} --no-overwrite {file}".format(pool=NEWPOOL, file=file) + logging.debug(cmd) + ret = call(cmd, shell=True, stdout=nullfd) + if ret != 0: + logging.error("Rados import --no-overwrite failed from {file} with {ret}".format(file=file, ret=ret)) + ERRORS += 1 ERRORS += verify(DATADIR, NEWPOOL, REP_NAME) else: -- 2.47.3