From cbecab477a70782f2f69258f035e78fb5c829810 Mon Sep 17 00:00:00 2001 From: David Zafman Date: Sat, 15 Nov 2014 11:43:10 -0800 Subject: [PATCH] tests: ceph_objectstore_tool.py fix list-attr for erasure code Adding testing of xattr for erasure coded shards Fix error message when finding an unexpected xattr key Signed-off-by: David Zafman --- src/test/ceph_objectstore_tool.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/test/ceph_objectstore_tool.py b/src/test/ceph_objectstore_tool.py index 62caee4db5a4..8a0e6de5f965 100755 --- a/src/test/ceph_objectstore_tool.py +++ b/src/test/ceph_objectstore_tool.py @@ -591,7 +591,14 @@ def main(argv): logging.error("{json} hinfo_key found {found} times instead of 3".format(json=JSON, found=found)) ERRORS += 1 - for pg in OBJREPPGS: + for pg in ALLPGS: + # Make sure rep obj with rep pg or ec obj with ec pg + if ('shard_id' in jsondict) != (pg.find('s') > 0): + continue + if 'shard_id' in jsondict: + # Fix shard_id since we only have one json instance for each object + jsondict['shard_id'] = int(string.split(pg, 's')[1]) + JSON = json.dumps(jsondict) OSDS = get_osds(pg, OSDDIR) for osd in OSDS: DIR = os.path.join(OSDDIR, os.path.join(osd, os.path.join("current", "{pg}_head".format(pg=pg)))) @@ -611,11 +618,11 @@ def main(argv): keys = get_lines(ATTRFILE) values = dict(db[nspace][basename]["xattr"]) for key in keys: - if key == "_" or key == "snapset": + if key == "_" or key == "snapset" or key == "hinfo_key": continue key = key.strip("_") if key not in values: - logging.error("The key {key} should be present".format(key=key)) + logging.error("Unexpected key {key} present".format(key=key)) ERRORS += 1 continue exp = values.pop(key) -- 2.47.3