diff options
author | Sage Weil <sage@redhat.com> | 2016-12-14 18:29:55 +0100 |
---|---|---|
committer | Sage Weil <sage@redhat.com> | 2016-12-14 18:29:55 +0100 |
commit | c01f2ee0e27827b45b92b3f0114a42ebfd776f60 (patch) | |
tree | c402893f4c99d1a99b3a4f2025c68e7f5cc75fa6 /qa/tasks/create_verify_lfn_objects.py | |
parent | Revert "tasks/workunit.py: depth 1 clone" (diff) | |
download | ceph-c01f2ee0e27827b45b92b3f0114a42ebfd776f60.tar.xz ceph-c01f2ee0e27827b45b92b3f0114a42ebfd776f60.zip |
move ceph-qa-suite dirs into qa/
Diffstat (limited to 'qa/tasks/create_verify_lfn_objects.py')
-rw-r--r-- | qa/tasks/create_verify_lfn_objects.py | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/qa/tasks/create_verify_lfn_objects.py b/qa/tasks/create_verify_lfn_objects.py new file mode 100644 index 00000000000..01ab1a370b7 --- /dev/null +++ b/qa/tasks/create_verify_lfn_objects.py @@ -0,0 +1,83 @@ +""" +Rados modle-based integration tests +""" +import contextlib +import logging + +log = logging.getLogger(__name__) + +@contextlib.contextmanager +def task(ctx, config): + """ + For each combination of namespace and name_length, create + <num_objects> objects with name length <name_length> + on entry. On exit, verify that the objects still exist, can + be deleted, and then don't exist. + + Usage:: + + create_verify_lfn_objects.py: + pool: <pool_name> default: 'data' + prefix: <prefix> default: '' + namespace: [<namespace>] default: [''] + num_objects: [<num_objects>] default: 10 + name_length: [<name_length>] default: [400] + """ + pool = config.get('pool', 'data') + num_objects = config.get('num_objects', 10) + name_length = config.get('name_length', [400]) + namespace = config.get('namespace', [None]) + prefix = config.get('prefix', None) + manager = ctx.managers['ceph'] + + objects = [] + for l in name_length: + for ns in namespace: + def object_name(i): + nslength = 0 + if namespace is not '': + nslength = len(namespace) + numstr = str(i) + fillerlen = l - nslength - len(prefix) - len(numstr) + assert fillerlen >= 0 + return prefix + ('a'*fillerlen) + numstr + objects += [(ns, object_name(i)) for i in range(num_objects)] + + for ns, name in objects: + err = manager.do_put( + pool, + name, + '/etc/resolv.conf', + namespace=ns) + log.info("err is " + str(err)) + assert err == 0 + + try: + yield + finally: + log.info('ceph_verify_lfn_objects verifying...') + for ns, name in objects: + err = manager.do_get( + pool, + name, + namespace=ns) + log.info("err is " + str(err)) + assert err == 0 + + log.info('ceph_verify_lfn_objects deleting...') + for ns, name in objects: + err = manager.do_rm( + pool, + name, + namespace=ns) + log.info("err is " + str(err)) + assert err == 0 + + log.info('ceph_verify_lfn_objects verifying absent...') + for ns, name in objects: + err = manager.do_get( + pool, + name, + namespace=ns) + log.info("err is " + str(err)) + assert err != 0 |