2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-05-17 11:54:19 +00:00

Change browserfs control to async, bring together to single send

This commit is contained in:
Jarrod Johnson
2024-08-20 16:24:18 -04:00
parent 53d0d09ae1
commit c9e428bb1b
+9 -10
View File
@@ -52,24 +52,23 @@ async def handle_request(configmanager, inputdata, pathcomponents, operation):
async def requestmount(subdir, filename):
await assure_browserfs()
cloop = asyncio.get_event_loop()
a = socket.socket(socket.AF_UNIX)
a.connect('/var/run/confluent/browserfs/control')
a.settimeout(0)
await cloop.sock_connect(a, '/var/run/confluent/browserfs/control')
subname = subdir.encode()
a.send(struct.pack('!II', 1, len(subname)))
a.send(subname)
fname = filename.encode()
a.send(struct.pack('!I', len(fname)))
a.send(fname)
rsp = a.recv(4)
await cloop.sock_sendall(a, struct.pack('!II', 1, len(subname)) + subname + struct.pack('!I', len(fname)) + fname)
rsp = await cloop.sock_recv(a, 4)
retcode = struct.unpack('!I', rsp)[0]
if retcode != 0:
raise Exception("Bad return code")
rsp = a.recv(4)
rsp = await cloop.sock_recv(a, 4)
nlen = struct.unpack('!I', rsp)[0]
idstr = a.recv(nlen).decode('utf8')
rsp = a.recv(4)
idstr = (await cloop.sock_recv(a, nlen)).decode('utf8')
rsp = await cloop.sock_recv(a, 4)
nlen = struct.unpack('!I', rsp)[0]
authtok = a.recv(nlen).decode('utf8')
authtok = (await cloop.sock_recv(a, nlen)).decode('utf8')
thismount = {
'id': idstr,
'path': '{}/{}/{}'.format(idstr, subdir, filename),