mirror of
https://github.com/vale981/ray
synced 2025-03-06 18:41:40 -05:00

This is the doc that explains how to achieve this: https://docs.google.com/document/d/12qP3x5uaqZSKS-A_kK0ylPOp0E02_l-deAbmm8YtdFw/edit?usp=sharing
The fully working e2e prototype is here (it passes all tests): cdad913883
This PR is pure refactoring. Basically it moves some of util functions that require optional_deps to `optional_utils` so that optional deps' util functions are not used in the minimal installation. Look below to see the steps.
<img width="693" alt="Screen Shot 2022-01-21 at 4 38 44 AM" src="https://user-images.githubusercontent.com/18510752/150528494-c3cdedf4-3a66-4557-b540-61436b1dbab6.png">
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
import logging
|
|
|
|
import aiohttp.web
|
|
|
|
import ray.dashboard.utils as dashboard_utils
|
|
import ray.dashboard.optional_utils as dashboard_optional_utils
|
|
import ray.dashboard.modules.test.test_utils as test_utils
|
|
import ray.dashboard.modules.test.test_consts as test_consts
|
|
from ray.ray_constants import env_bool
|
|
|
|
logger = logging.getLogger(__name__)
|
|
routes = dashboard_optional_utils.ClassMethodRouteTable
|
|
|
|
|
|
@dashboard_utils.dashboard_module(
|
|
enable=env_bool(test_consts.TEST_MODULE_ENVIRONMENT_KEY, False))
|
|
class TestAgent(dashboard_utils.DashboardAgentModule):
|
|
def __init__(self, dashboard_agent):
|
|
super().__init__(dashboard_agent)
|
|
|
|
@routes.get("/test/http_get_from_agent")
|
|
async def get_url(self, req) -> aiohttp.web.Response:
|
|
url = req.query.get("url")
|
|
result = await test_utils.http_get(self._dashboard_agent.http_session,
|
|
url)
|
|
return aiohttp.web.json_response(result)
|
|
|
|
@routes.head("/test/route_head")
|
|
async def route_head(self, req) -> aiohttp.web.Response:
|
|
pass
|
|
|
|
@routes.post("/test/route_post")
|
|
async def route_post(self, req) -> aiohttp.web.Response:
|
|
pass
|
|
|
|
@routes.patch("/test/route_patch")
|
|
async def route_patch(self, req) -> aiohttp.web.Response:
|
|
pass
|
|
|
|
async def run(self, server):
|
|
pass
|