3
from __future__ import print_function
7
api = ctypes.CDLL("libgfapi.so")
8
api.glfs_get_volfile.argtypes = [ctypes.c_void_p,
11
api.glfs_get_volfile.restype = ctypes.c_long
14
def get_volfile(host, volume):
15
# This is set to a large value to exercise the "buffer not big enough"
16
# path. More realistically, you'd just start with a huge buffer.
18
fs = api.glfs_new(volume)
19
# api.glfs_set_logging(fs,"/dev/stderr",7)
20
api.glfs_set_volfile_server(fs, "tcp", host, 24007)
22
vbuf = ctypes.create_string_buffer(BUF_LEN)
23
vlen = api.glfs_get_volfile(fs, vbuf, BUF_LEN)
26
vbuf = ctypes.create_string_buffer(vlen)
27
vlen = api.glfs_get_volfile(fs, vbuf, vlen)
31
return vbuf.value[:vlen]
33
if __name__ == "__main__":
37
res = get_volfile(*sys.argv[1:3])
39
print("fetching volfile failed (volume not started?)")
42
for line in res.split('\n'):
45
print("bad return value %s" % res)