1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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 != '':
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
|