From 53d0d09ae1a187d72ea41f68b73a060cc5d2f00c Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Tue, 20 Aug 2024 15:57:56 -0400 Subject: [PATCH] Have browserfs based import work with async --- confluent_server/confluent/core.py | 7 ++++--- confluent_server/confluent/mountmanager.py | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/confluent_server/confluent/core.py b/confluent_server/confluent/core.py index d7215157..36624224 100644 --- a/confluent_server/confluent/core.py +++ b/confluent_server/confluent/core.py @@ -183,12 +183,12 @@ class PluginRoute(object): -def handle_storage(configmanager, inputdata, pathcomponents, operation): +async def handle_storage(configmanager, inputdata, pathcomponents, operation): if len(pathcomponents) == 1: yield msg.ChildCollection('remote/') return if pathcomponents[1] == 'remote': - for rsp in mountmanager.handle_request(configmanager, inputdata, pathcomponents[2:], operation): + async for rsp in mountmanager.handle_request(configmanager, inputdata, pathcomponents[2:], operation): yield rsp async def handle_deployment(configmanager, inputdata, pathcomponents, @@ -243,7 +243,8 @@ async def handle_deployment(configmanager, inputdata, pathcomponents, return if pathcomponents[1] == 'fingerprint': if operation == 'create': - importer = osimage.MediaImporter(inputdata['filename'], configmanager, checkonly=True) + importer = osimage.MediaImporter() + await importer.init(inputdata['filename'], configmanager, checkonly=True) medinfo = { 'targetpath': importer.targpath, 'name': importer.osname, diff --git a/confluent_server/confluent/mountmanager.py b/confluent_server/confluent/mountmanager.py index 02ae1003..56f87494 100644 --- a/confluent_server/confluent/mountmanager.py +++ b/confluent_server/confluent/mountmanager.py @@ -4,7 +4,7 @@ import eventlet import confluent.messages as msg import confluent.exceptions as exc import struct -import eventlet.green.socket as socket +import socket import os mountsbyuser = {} _browserfsd = None @@ -23,7 +23,7 @@ async def assure_browserfs(): await asyncio.sleep(0.5) -def handle_request(configmanager, inputdata, pathcomponents, operation): +async def handle_request(configmanager, inputdata, pathcomponents, operation): curruser = configmanager.current_user if len(pathcomponents) == 0: mounts = mountsbyuser.get(curruser, []) @@ -39,7 +39,7 @@ def handle_request(configmanager, inputdata, pathcomponents, operation): curridx = 1 while curridx in usedidx: curridx += 1 - currmount = requestmount(curruser, inputdata['name']) + currmount = await requestmount(curruser, inputdata['name']) currmount['index'] = curridx if curruser not in mountsbyuser: mountsbyuser[curruser] = []