From: David Zafman Date: Sat, 15 Nov 2014 19:43:10 +0000 (-0800) Subject: tests: ceph_objectstore_tool.py fix list-attr for erasure code X-Git-Tag: v0.90~81^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F2915%2Fhead;p=ceph.git 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 --- 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)