diff options
Diffstat (limited to 'api/examples/getvolfile.py')
| -rwxr-xr-x | api/examples/getvolfile.py | 64 |
1 files changed, 33 insertions, 31 deletions
diff --git a/api/examples/getvolfile.py b/api/examples/getvolfile.py index 184586c632d..3b2c8ab5a15 100755 --- a/api/examples/getvolfile.py +++ b/api/examples/getvolfile.py @@ -1,43 +1,45 @@ -#!/usr/bin/python +#!/usr/bin/python3 +from __future__ import print_function import ctypes import ctypes.util -api = ctypes.CDLL(ctypes.util.find_library("gfapi")) +api = ctypes.CDLL("libgfapi.so") api.glfs_get_volfile.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_ulong] -api.glfs_get_volfile.restype = ctypes.c_long; +api.glfs_get_volfile.restype = ctypes.c_long -def get_volfile (host, volume): - # This is set to a large value to exercise the "buffer not big enough" - # path. More realistically, you'd just start with a huge buffer. - BUF_LEN = 0 - fs = api.glfs_new(volume) - #api.glfs_set_logging(fs,"/dev/stderr",7) - api.glfs_set_volfile_server(fs,"tcp",host,24007) - api.glfs_init(fs) - vbuf = ctypes.create_string_buffer(BUF_LEN) - vlen = api.glfs_get_volfile(fs,vbuf,BUF_LEN) - if vlen < 0: - vlen = BUF_LEN - vlen - vbuf = ctypes.create_string_buffer(vlen) - vlen = api.glfs_get_volfile(fs,vbuf,vlen) - api.glfs_fini(fs) - if vlen <= 0: - return vlen - return vbuf.value[:vlen] + +def get_volfile(host, volume): + # This is set to a large value to exercise the "buffer not big enough" + # path. More realistically, you'd just start with a huge buffer. + BUF_LEN = 0 + fs = api.glfs_new(volume) + # api.glfs_set_logging(fs,"/dev/stderr",7) + api.glfs_set_volfile_server(fs, "tcp", host, 24007) + api.glfs_init(fs) + vbuf = ctypes.create_string_buffer(BUF_LEN) + vlen = api.glfs_get_volfile(fs, vbuf, BUF_LEN) + if vlen < 0: + vlen = BUF_LEN - vlen + vbuf = ctypes.create_string_buffer(vlen) + vlen = api.glfs_get_volfile(fs, vbuf, vlen) + api.glfs_fini(fs) + if vlen <= 0: + return vlen + return vbuf.value[:vlen] if __name__ == "__main__": - import sys + import sys - try: - res = apply(get_volfile,sys.argv[1:3]) - except: - print "fetching volfile failed (volume not started?)" + try: + res = get_volfile(*sys.argv[1:3]) + except: + print("fetching volfile failed (volume not started?)") - try: - for line in res.split('\n'): - print line - except: - print "bad return value %s" % res + try: + for line in res.split('\n'): + print(line) + except: + print("bad return value %s" % res) |
