Skip to content

Commit 230be33

Browse files
committed
fix: await task instead of generated co-routine.
1 parent 1a82e66 commit 230be33

5 files changed

Lines changed: 8 additions & 7 deletions

File tree

nitric/resources/base.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import asyncio
2222
from abc import ABC, abstractmethod
23+
from asyncio import Task
2324

2425
from typing import TypeVar, Type, Coroutine, Union
2526

@@ -33,7 +34,7 @@ class BaseResource(ABC):
3334

3435
def __init__(self):
3536
"""Construct a new resource."""
36-
self._reg: Union[Coroutine, None] = None
37+
self._reg: Union[Task, None] = None
3738

3839
@abstractmethod
3940
async def _register(self):
@@ -48,10 +49,10 @@ def make(cls: Type[T], name: str) -> T:
4849
"""
4950
# Todo: store the resource reference in a cache to avoid duplicate registrations
5051
r = cls(name)
51-
r._reg = r._register()
52+
# r._reg = r._register()
5253
try:
5354
loop = asyncio.get_running_loop()
54-
loop.create_task(r._reg)
55+
r._reg = loop.create_task(r._register())
5556
except RuntimeError:
5657
loop = asyncio.get_event_loop()
5758
loop.run_until_complete(r._reg)

nitric/resources/buckets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ async def allow(self, permissions: List[str]) -> BucketRef:
8888
"""Request the required permissions for this resource."""
8989
# Ensure registration of the resource is complete before requesting permissions.
9090
if self._reg is not None:
91-
await asyncio.wait({self._reg})
91+
await self._reg
9292

9393
policy = PolicyResource(
9494
principals=[Resource(type=ResourceType.Function)],

nitric/resources/collections.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ async def allow(self, permissions: List[Union[CollectionPermission, str]]) -> Co
8686
"""Request the required permissions for this collection."""
8787
# Ensure registration of the resource is complete before requesting permissions.
8888
if self._reg is not None:
89-
await asyncio.wait({self._reg})
89+
await self._reg
9090

9191
policy = PolicyResource(
9292
principals=[Resource(type=ResourceType.Function)],

nitric/resources/queues.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ async def allow(self, permissions: List[Union[QueuePermission, str]]) -> QueueRe
8686
"""Request the required permissions for this queue."""
8787
# Ensure registration of the resource is complete before requesting permissions.
8888
if self._reg is not None:
89-
await asyncio.wait({self._reg})
89+
await self._reg
9090

9191
policy = PolicyResource(
9292
principals=[Resource(type=ResourceType.Function)],

nitric/resources/secrets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ async def allow(self, permissions: List[Union[SecretPermission, str]]) -> Secret
8787
"""Request the specified permissions to this resource."""
8888
# Ensure registration of the resource is complete before requesting permissions.
8989
if self._reg is not None:
90-
await asyncio.wait({self._reg})
90+
await self._reg
9191

9292
policy = PolicyResource(
9393
principals=[Resource(type=ResourceType.Function)],

0 commit comments

Comments
 (0)