From: Samuel Just Date: Mon, 4 Apr 2016 21:20:05 +0000 (-0700) Subject: tasks: add create_verify_lfn_objects X-Git-Tag: v10.2.6~165^2^2~106^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=46295855360f1f9502efc05cf5027683753b4b60;p=ceph.git tasks: add create_verify_lfn_objects Signed-off-by: Samuel Just --- diff --git a/tasks/create_verify_lfn_objects.py b/tasks/create_verify_lfn_objects.py new file mode 100644 index 00000000000..447fa880899 --- /dev/null +++ b/tasks/create_verify_lfn_objects.py @@ -0,0 +1,78 @@ +""" +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 + objects with 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: default: 'data' + prefix: default: '' + namespace: [] default: [''] + num_objects: [] default: 10 + 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) + + 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 = ctx.manager.do_put( + pool, + name, + '/etc/resolv.conf', + namespace=ns) + assert not err + + try: + yield + finally: + log.info('ceph_verify_lfn_objects verifying...') + for ns, name in objects: + err = ctx.manager.do_get( + pool, + name, + namespace=ns) + assert not err + + log.info('ceph_verify_lfn_objects deleting...') + for ns, name in objects: + err = ctx.manager.do_rm( + pool, + name, + namespace=ns) + assert not err + + log.info('ceph_verify_lfn_objects verifying absent...') + for ns, name in objects: + err = ctx.manager.do_get( + pool, + name, + namespace=ns) + assert err