gitscope
← marzneshin / Diff · 961d06d → 961d06d
Changes 961d06d..961d06d
Patch commit
diff --git a/app/marznode/base.py b/app/marznode/base.py
index 7772ac8..c0db35d 100644
--- a/app/marznode/base.py
+++ b/app/marznode/base.py
@@ -3,6 +3,9 @@ from abc import ABC
class MarzNodeBase(ABC):
+ async def stop(self):
+ """stops all operations"""
+
async def update_user(
self, user, inbounds: list[str] | None = None
) -> None:
diff --git a/app/marznode/grpcio.py b/app/marznode/grpcio.py
index a01afe9..ab11bd1 100644
--- a/app/marznode/grpcio.py
+++ b/app/marznode/grpcio.py
@@ -48,7 +48,7 @@ class MarzNodeGRPCIO(MarzNodeBase, MarzNodeDB):
f"{self._address}:{self._port}", channel_options
)
self._stub = MarzServiceStub(self._channel)
- asyncio.create_task(self._monitor_channel())
+ self._monitor_task = asyncio.create_task(self._monitor_channel())
self._streaming_task = None
self._updates_queue = asyncio.Queue(5)
@@ -56,6 +56,10 @@ class MarzNodeGRPCIO(MarzNodeBase, MarzNodeDB):
self.usage_coefficient = usage_coefficient
atexit.register(self._close_channel)
+ async def stop(self):
+ await self._channel.close()
+ self._monitor_task.cancel()
+
def _close_channel(self):
asyncio.run(self._channel.close())
diff --git a/app/marznode/grpclib.py b/app/marznode/grpclib.py
index 758ee78..e24ab48 100644
--- a/app/marznode/grpclib.py
+++ b/app/marznode/grpclib.py
@@ -59,7 +59,7 @@ class MarzNodeGRPCLIB(MarzNodeBase, MarzNodeDB):
self._channel = Channel(self._address, self._port, ssl=ctx)
self._stub = MarzServiceStub(self._channel)
- asyncio.create_task(self._monitor_channel())
+ self._monitor_task = asyncio.create_task(self._monitor_channel())
self._streaming_task = None
self._updates_queue = asyncio.Queue(1)
@@ -67,6 +67,10 @@ class MarzNodeGRPCLIB(MarzNodeBase, MarzNodeDB):
self.usage_coefficient = usage_coefficient
atexit.register(self._channel.close)
+ async def stop(self):
+ self._channel.close()
+ self._monitor_task.cancel()
+
async def _monitor_channel(self):
while state := self._channel._state:
logger.debug("node %i channel state: %s", self.id, state.value)
diff --git a/app/marznode/operations.py b/app/marznode/operations.py
index 9bf1e16..56b3d7d 100644
--- a/app/marznode/operations.py
+++ b/app/marznode/operations.py
@@ -51,6 +51,7 @@ async def remove_user(user: "DBUser"):
async def remove_node(node_id: int):
if node_id in marznode.nodes:
+ await marznode.nodes[node_id].stop()
del marznode.nodes[node_id]
diff --git a/dashboard/public/locales/en.json b/dashboard/public/locales/en.json
index c82335a..aeb9462 100644
--- a/dashboard/public/locales/en.json
+++ b/dashboard/public/locales/en.json
@@ -158,8 +158,8 @@
}
},
"usage_coefficient": "Usage Coefficient",
- "connection_backend": "Backend Connection",
- "connection_backend_desc": "Used for remote tls connections",
+ "connection_backend": "Connection Backend",
+ "connection_backend_desc": "Used for the remote connection",
"certificate-alert": {
"title": "Nodes Certificate Configuration",
"desc": "If you aim to configure your nodes certificate, checkout settings page.",
diff --git a/dashboard/public/locales/fa.json b/dashboard/public/locales/fa.json
index 099de54..c528603 100644
--- a/dashboard/public/locales/fa.json
+++ b/dashboard/public/locales/fa.json
@@ -140,7 +140,7 @@
},
"usage_coefficient": "ضریب مصرف",
"connection_backend": "بکند اتصال",
- "connection_backend_desc": "برای اتصالات tls به کار می‌رود",
+ "connection_backend_desc": "نوع اتصال را مشخص می‌کند",
"certificate-alert": {
"title": "کانفیگ سرتیفیکت نود",
"desc": "اگر قصد برداشت سرتیفیکت نود را دارید، صفحه تنظیمات را بررسی کنید",
diff --git a/requirements.txt b/requirements.txt
index 9f02543..9b1691c 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -23,7 +23,7 @@ aiohttp==3.10.2
xxhash==3.4.1
grpcio==1.65.4
psycopg==3.1.18
-v2share==0.1.0b22
+v2share==0.1.0b23
PyJWT~=2.8.0
PyNaCl==1.5.0
starlette==0.40.0