refactor: remove address field and related logic
This commit is contained in:
@@ -60,7 +60,7 @@ async def create_proxy_handler(payload: ProxyCreateInput):
|
|||||||
return await create_proxy(
|
return await create_proxy(
|
||||||
proxy_port=payload.proxy_port,
|
proxy_port=payload.proxy_port,
|
||||||
name=payload.name,
|
name=payload.name,
|
||||||
service={"address": payload.service.address, "port": payload.service.port},
|
service={"port": payload.service.port},
|
||||||
code=payload.code,
|
code=payload.code,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -4,5 +4,4 @@ from pydantic import BaseModel, ConfigDict, Field
|
|||||||
class ServiceEndpointDocument(BaseModel):
|
class ServiceEndpointDocument(BaseModel):
|
||||||
model_config = ConfigDict(extra="forbid")
|
model_config = ConfigDict(extra="forbid")
|
||||||
|
|
||||||
address: str = Field(..., description="Upstream service address")
|
|
||||||
port: int = Field(..., description="Upstream service port")
|
port: int = Field(..., description="Upstream service port")
|
||||||
|
|||||||
@@ -4,11 +4,11 @@ from typing import Any
|
|||||||
|
|
||||||
from motor.motor_asyncio import AsyncIOMotorCollection
|
from motor.motor_asyncio import AsyncIOMotorCollection
|
||||||
from pymongo import ReturnDocument
|
from pymongo import ReturnDocument
|
||||||
from services.proxy.models import ServiceConfig
|
|
||||||
|
|
||||||
from core.mongodb import get_database
|
from core.mongodb import get_database
|
||||||
from models.proxy import ProxyDocument, ProxyUpdateInput
|
from models.proxy import ProxyDocument, ProxyUpdateInput
|
||||||
from models.service import ServiceEndpointDocument
|
from models.service import ServiceEndpointDocument
|
||||||
|
from services.proxy.models import ServiceConfig
|
||||||
|
|
||||||
COLLECTION_NAME = "proxies"
|
COLLECTION_NAME = "proxies"
|
||||||
|
|
||||||
@@ -47,7 +47,6 @@ async def create_proxy(
|
|||||||
name=name,
|
name=name,
|
||||||
code=code,
|
code=code,
|
||||||
service=ServiceEndpointDocument(
|
service=ServiceEndpointDocument(
|
||||||
address=service["address"],
|
|
||||||
port=service["port"],
|
port=service["port"],
|
||||||
),
|
),
|
||||||
created_at=now,
|
created_at=now,
|
||||||
|
|||||||
@@ -2,5 +2,4 @@ from typing import TypedDict
|
|||||||
|
|
||||||
|
|
||||||
class ServiceConfig(TypedDict):
|
class ServiceConfig(TypedDict):
|
||||||
name: str
|
|
||||||
port: int
|
port: int
|
||||||
@@ -8,6 +8,7 @@ dependencies = [
|
|||||||
"fastapi[standard]>=0.135.3",
|
"fastapi[standard]>=0.135.3",
|
||||||
"motor>=3.7.1",
|
"motor>=3.7.1",
|
||||||
"passlib[bcrypt]>=1.7.4",
|
"passlib[bcrypt]>=1.7.4",
|
||||||
|
"pydantic>=2.12.5",
|
||||||
"pydantic-settings>=2.13.1",
|
"pydantic-settings>=2.13.1",
|
||||||
"pyyaml>=6.0.3",
|
"pyyaml>=6.0.3",
|
||||||
"redis>=7.4.0",
|
"redis>=7.4.0",
|
||||||
|
|||||||
@@ -13,14 +13,13 @@ def make_proxy_document(
|
|||||||
proxy_port: int,
|
proxy_port: int,
|
||||||
name: str = "svc",
|
name: str = "svc",
|
||||||
code: str = "proxy-code",
|
code: str = "proxy-code",
|
||||||
address: str = "127.0.0.1",
|
|
||||||
port: int = 9000,
|
port: int = 9000,
|
||||||
) -> ProxyDocument:
|
) -> ProxyDocument:
|
||||||
return ProxyDocument(
|
return ProxyDocument(
|
||||||
proxy_port=proxy_port,
|
proxy_port=proxy_port,
|
||||||
name=name,
|
name=name,
|
||||||
code=code,
|
code=code,
|
||||||
service=ServiceEndpointDocument(address=address, port=port),
|
service=ServiceEndpointDocument(port=port),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -87,7 +86,7 @@ def test_create_proxy_returns_409_on_port_conflict(client, monkeypatch: object):
|
|||||||
"proxy_port": 3671,
|
"proxy_port": 3671,
|
||||||
"name": "new",
|
"name": "new",
|
||||||
"code": "abc",
|
"code": "abc",
|
||||||
"service": {"address": "localhost", "port": 8080},
|
"service": {"port": 8080},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -117,7 +116,6 @@ def test_create_proxy_returns_created_document(client, monkeypatch: object):
|
|||||||
proxy_port=proxy_port,
|
proxy_port=proxy_port,
|
||||||
name=name,
|
name=name,
|
||||||
code=code,
|
code=code,
|
||||||
address=str(service["address"]),
|
|
||||||
port=int(service["port"]),
|
port=int(service["port"]),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -142,7 +140,7 @@ def test_create_proxy_returns_created_document(client, monkeypatch: object):
|
|||||||
"proxy_port": 4040,
|
"proxy_port": 4040,
|
||||||
"name": "edge",
|
"name": "edge",
|
||||||
"code": "def proxy_handler():\n return 'ok'\n",
|
"code": "def proxy_handler():\n return 'ok'\n",
|
||||||
"service": {"address": "service.local", "port": 8181},
|
"service": {"port": 8181},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -151,7 +149,7 @@ def test_create_proxy_returns_created_document(client, monkeypatch: object):
|
|||||||
assert captured == {
|
assert captured == {
|
||||||
"proxy_port": 4040,
|
"proxy_port": 4040,
|
||||||
"name": "edge",
|
"name": "edge",
|
||||||
"service": {"address": "service.local", "port": 8181},
|
"service": {"port": 8181},
|
||||||
"code": "def proxy_handler():\n return 'ok'\n",
|
"code": "def proxy_handler():\n return 'ok'\n",
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,7 +206,7 @@ def test_create_proxy_returns_422_when_code_validation_fails(
|
|||||||
"proxy_port": 4000,
|
"proxy_port": 4000,
|
||||||
"name": "broken",
|
"name": "broken",
|
||||||
"code": "invalid-code",
|
"code": "invalid-code",
|
||||||
"service": {"address": "service.local", "port": 9000},
|
"service": {"port": 9000},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -854,6 +854,7 @@ dependencies = [
|
|||||||
{ name = "fastapi", extra = ["standard"] },
|
{ name = "fastapi", extra = ["standard"] },
|
||||||
{ name = "motor" },
|
{ name = "motor" },
|
||||||
{ name = "passlib", extra = ["bcrypt"] },
|
{ name = "passlib", extra = ["bcrypt"] },
|
||||||
|
{ name = "pydantic" },
|
||||||
{ name = "pydantic-settings" },
|
{ name = "pydantic-settings" },
|
||||||
{ name = "pyyaml" },
|
{ name = "pyyaml" },
|
||||||
{ name = "redis" },
|
{ name = "redis" },
|
||||||
@@ -871,6 +872,7 @@ requires-dist = [
|
|||||||
{ name = "fastapi", extras = ["standard"], specifier = ">=0.135.3" },
|
{ name = "fastapi", extras = ["standard"], specifier = ">=0.135.3" },
|
||||||
{ name = "motor", specifier = ">=3.7.1" },
|
{ name = "motor", specifier = ">=3.7.1" },
|
||||||
{ name = "passlib", extras = ["bcrypt"], specifier = ">=1.7.4" },
|
{ name = "passlib", extras = ["bcrypt"], specifier = ">=1.7.4" },
|
||||||
|
{ name = "pydantic", specifier = ">=2.12.5" },
|
||||||
{ name = "pydantic-settings", specifier = ">=2.13.1" },
|
{ name = "pydantic-settings", specifier = ">=2.13.1" },
|
||||||
{ name = "pyyaml", specifier = ">=6.0.3" },
|
{ name = "pyyaml", specifier = ">=6.0.3" },
|
||||||
{ name = "redis", specifier = ">=7.4.0" },
|
{ name = "redis", specifier = ">=7.4.0" },
|
||||||
|
|||||||
Reference in New Issue
Block a user