]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | """ |
2 | Rados modle-based integration tests | |
3 | """ | |
4 | import contextlib | |
5 | import logging | |
6 | ||
7 | log = logging.getLogger(__name__) | |
8 | ||
9 | @contextlib.contextmanager | |
10 | def task(ctx, config): | |
11 | """ | |
12 | For each combination of namespace and name_length, create | |
13 | <num_objects> objects with name length <name_length> | |
14 | on entry. On exit, verify that the objects still exist, can | |
15 | be deleted, and then don't exist. | |
16 | ||
17 | Usage:: | |
18 | ||
19 | create_verify_lfn_objects.py: | |
20 | pool: <pool_name> default: 'data' | |
21 | prefix: <prefix> default: '' | |
22 | namespace: [<namespace>] default: [''] | |
23 | num_objects: [<num_objects>] default: 10 | |
24 | name_length: [<name_length>] default: [400] | |
25 | """ | |
26 | pool = config.get('pool', 'data') | |
27 | num_objects = config.get('num_objects', 10) | |
28 | name_length = config.get('name_length', [400]) | |
29 | namespace = config.get('namespace', [None]) | |
30 | prefix = config.get('prefix', None) | |
31 | manager = ctx.managers['ceph'] | |
32 | ||
33 | objects = [] | |
34 | for l in name_length: | |
35 | for ns in namespace: | |
36 | def object_name(i): | |
37 | nslength = 0 | |
9f95a23c | 38 | if namespace != '': |
7c673cae FG |
39 | nslength = len(namespace) |
40 | numstr = str(i) | |
41 | fillerlen = l - nslength - len(prefix) - len(numstr) | |
42 | assert fillerlen >= 0 | |
43 | return prefix + ('a'*fillerlen) + numstr | |
44 | objects += [(ns, object_name(i)) for i in range(num_objects)] | |
45 | ||
46 | for ns, name in objects: | |
47 | err = manager.do_put( | |
48 | pool, | |
49 | name, | |
50 | '/etc/resolv.conf', | |
51 | namespace=ns) | |
52 | log.info("err is " + str(err)) | |
53 | assert err == 0 | |
54 | ||
55 | try: | |
56 | yield | |
57 | finally: | |
58 | log.info('ceph_verify_lfn_objects verifying...') | |
59 | for ns, name in objects: | |
60 | err = manager.do_get( | |
61 | pool, | |
62 | name, | |
63 | namespace=ns) | |
64 | log.info("err is " + str(err)) | |
65 | assert err == 0 | |
66 | ||
67 | log.info('ceph_verify_lfn_objects deleting...') | |
68 | for ns, name in objects: | |
69 | err = manager.do_rm( | |
70 | pool, | |
71 | name, | |
72 | namespace=ns) | |
73 | log.info("err is " + str(err)) | |
74 | assert err == 0 | |
75 | ||
76 | log.info('ceph_verify_lfn_objects verifying absent...') | |
77 | for ns, name in objects: | |
78 | err = manager.do_get( | |
79 | pool, | |
80 | name, | |
81 | namespace=ns) | |
82 | log.info("err is " + str(err)) | |
83 | assert err != 0 |