From 63f31b636aeb1dc9b2d7fa33d01eabc19e05cf6a Mon Sep 17 00:00:00 2001 From: Michael Pilosov Date: Sun, 19 Mar 2023 04:08:48 -0600 Subject: [PATCH] announce server decorator complete --- example_block/eden-server/announce.py | 51 +++++++++------------------ example_block/eden-server/server.py | 5 +-- 2 files changed, 20 insertions(+), 36 deletions(-) diff --git a/example_block/eden-server/announce.py b/example_block/eden-server/announce.py index c58d389..0fc476c 100644 --- a/example_block/eden-server/announce.py +++ b/example_block/eden-server/announce.py @@ -16,25 +16,23 @@ def get_ip_address(): return ip # Update these with the correct values for your host and server -HOST_SERVER_IP = "192.168.1.113" -HOST_SERVER_PORT = 4999 - -SERVER_IP = get_ip_address() -SERVER_PORT = 8000 sio = socketio.AsyncClient() -async def announce_server(**kwargs): +async def _announce_server(**kwargs): + HOST_SERVER_IP = "0.0.0.0" + HOST_SERVER_PORT = 4999 SERVER_NAME = "server_1" - server_name = kwargs.get("name", SERVER_NAME) - # SERVER_IP = kwargs.get("ip", SERVER_IP) - # SERVER_PORT = kwargs.get("port", SERVER_PORT) - # HOST_SERVER_IP = kwargs.get("host_server_ip", HOST_SERVER_IP) - # HOST_SERVER_PORT = kwargs.get("host_server_port", HOST_SERVER_PORT) + SERVER_PORT = 8000 + SERVER_NAME = kwargs.get("name", SERVER_NAME) + SERVER_IP = kwargs.get("ip", get_ip_address()) + SERVER_PORT = kwargs.get("port", SERVER_PORT) + HOST_SERVER_IP = kwargs.get("host_ip", HOST_SERVER_IP) + HOST_SERVER_PORT = kwargs.get("host_port", HOST_SERVER_PORT) @sio.event async def connect(): - await sio.emit('register', {'name': server_name, 'ip': SERVER_IP, 'port': SERVER_PORT}) + await sio.emit('register', {'name': SERVER_NAME, 'ip': SERVER_IP, 'port': SERVER_PORT}) print("Announced server to host") async def main(): @@ -60,7 +58,12 @@ async def announce_server(**kwargs): await main() -def announce_server_decorator(task): + + +def announce_server(task=None, **outer_kwargs): + if task is None: + return lambda f: announce_server(f, **outer_kwargs) + @wraps(task) def wrapper(*args, **kwargs): async def main(*args, **kwargs): @@ -68,7 +71,7 @@ def announce_server_decorator(task): host_block_thread = loop.run_in_executor(None, task) # Announce the server to the host - await announce_server(name='test') + await _announce_server(**outer_kwargs) # Wait for host_block to finish await host_block_thread @@ -76,23 +79,3 @@ def announce_server_decorator(task): return asyncio.run(main()) return wrapper - -# def announce_server_decorator(**outer_kwargs): -# def decorator(host_block_function): -# @wraps(host_block_function) -# def wrapper(*args, **kwargs): - -# async def main(*args, **kwargs): -# loop = asyncio.get_event_loop() -# host_block_thread = loop.run_in_executor(None, host_block_function, *args, **kwargs) - -# # Announce the server to the host -# await announce_server(**outer_kwargs) - -# # Wait for host_block to finish -# await host_block_thread - -# return asyncio.run(main(*args, **kwargs)) - -# return wrapper -# return decorator \ No newline at end of file diff --git a/example_block/eden-server/server.py b/example_block/eden-server/server.py index d9e068b..5b8510c 100644 --- a/example_block/eden-server/server.py +++ b/example_block/eden-server/server.py @@ -2,6 +2,8 @@ from eden.block import Block from eden.datatypes import Image from eden.hosting import host_block +from announce import announce_server, get_ip_address + ## eden <3 pytorch from torchvision import models, transforms import torch @@ -55,9 +57,8 @@ def do_something(config): pil_image = Image(pil_image) return {"value": value, "index": index, "label": label, 'image': pil_image} -from announce import announce_server_decorator -@announce_server_decorator#(name="example_block", port=5656) +@announce_server(name='resnet50', port=5656, host_ip="192.168.1.113", host_port=4999, ip=get_ip_address()) def run_host_block(): host_block( block=eden_block,