From 6bb7ab20b3c8b51cfa8653281b30dfc07ae7481d Mon Sep 17 00:00:00 2001 From: Jeremy Date: Tue, 24 Feb 2015 15:26:03 -0700 Subject: [PATCH] Fixes vm concurrency and support for devices. --- gns3server/web/route.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gns3server/web/route.py b/gns3server/web/route.py index 4e411b5a..bdc4c62e 100644 --- a/gns3server/web/route.py +++ b/gns3server/web/route.py @@ -159,10 +159,15 @@ class Route(object): between the same instance of the vm """ - if "vm_id" in request.match_info: - cls._vms_lock.setdefault(request.match_info["vm_id"], asyncio.Lock()) - with (yield from cls._vms_lock[request.match_info["vm_id"]]): + if "vm_id" in request.match_info or "device_id" in request.match_info: + vm_id = request.match_info.get("vm_id") + if vm_id is None: + vm_id = request.match_info["device_id"] + cls._vms_lock.setdefault(vm_id, asyncio.Lock()) + with (yield from cls._vms_lock[vm_id]): response = yield from control_schema(request) + else: + response = yield from control_schema(request) return response cls._routes.append((method, cls._path, vm_concurrency))