Skip to content

Commit

Permalink
Drop deprecated public broadway port
Browse files Browse the repository at this point in the history
  • Loading branch information
SvenMarcus committed Feb 7, 2023
1 parent da77071 commit 4a8b587
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 15 deletions.
18 changes: 8 additions & 10 deletions ocrd_monitor/ocrdbrowser/_subprocess.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
from __future__ import annotations

import os
import subprocess as sp
from shutil import which
import os
from typing import Optional

from ._browser import OcrdBrowser
from ._port import Port

BROADWAY_BASE_PORT = 8080


class SubProcessOcrdBrowser:
def __init__(self, port: str, localport: Port, owner: str, workspace: str) -> None:
self._port = port
def __init__(self, localport: Port, owner: str, workspace: str) -> None:
self._localport = localport
self._owner = owner
self._workspace = workspace
Expand All @@ -23,7 +24,7 @@ def address(self) -> str:
# (we use 8085 as fixed start of the internal port range,
# and map to the runtime corresponding external port)
localport = self._localport.get()
return "http://localhost:" + str(int(self._port) + localport - 8085)
return "http://localhost:" + str(localport)

def workspace(self) -> str:
return self._workspace
Expand All @@ -40,7 +41,7 @@ def start(self) -> None:
# (disconnecting concurrent connections), hence we must start a new daemon
# for each new browser session
# broadwayd starts counting virtual X displays from port 8080 as :0
displayport = str(localport - 8080)
displayport = str(localport - BROADWAY_BASE_PORT)
environment = dict(os.environ)
environment["GDK_BACKEND"] = "broadway"
environment["BROADWAY_DISPLAY"] = ":" + displayport
Expand All @@ -66,11 +67,8 @@ def stop(self) -> None:


class SubProcessOcrdBrowserFactory:
def __init__(self, port: str, available_ports: set[int]) -> None:
self._port = port
def __init__(self, available_ports: set[int]) -> None:
self._available_ports = available_ports

def __call__(self, owner: str, workspace_path: str) -> OcrdBrowser:
return SubProcessOcrdBrowser(
self._port, Port(self._available_ports), owner, workspace_path
)
return SubProcessOcrdBrowser(Port(self._available_ports), owner, workspace_path)
5 changes: 3 additions & 2 deletions ocrd_monitor/ocrdmonitor/server/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,20 @@ class OcrdControllerSettings(BaseModel):
def process_query(self) -> ProcessQuery:
return partial(process_status, self)


class OcrdLogViewSettings(BaseModel):
port: int


class OcrdBrowserSettings(BaseModel):
workspace_dir: Path
mode: Literal["native", "docker"] = "native"
public_port: int = 8080
port_range: tuple[int, int]

def factory(self) -> OcrdBrowserFactory:
port_range_set = set(range(*self.port_range))
if self.mode == "native":
return SubProcessOcrdBrowserFactory(str(self.public_port), port_range_set)
return SubProcessOcrdBrowserFactory(port_range_set)
else:
factory = DockerOcrdBrowserFactory("http://localhost", port_range_set)
atexit.register(factory.stop_all)
Expand Down
3 changes: 0 additions & 3 deletions ocrd_monitor/tests/ocrdmonitor/server/test_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
ENV_TEMPLATE = {
"browser_workspace_dir": "OCRD_BROWSER__WORKSPACE_DIR={}",
"browser_mode": "OCRD_BROWSER__MODE={}",
"browser_public_port": "OCRD_BROWSER__PUBLIC_PORT={}",
"browser_port_range": "OCRD_BROWSER__PORT_RANGE={}",
"controller_job_dir": "OCRD_CONTROLLER__JOB_DIR={}",
"controller_host": "OCRD_CONTROLLER__HOST={}",
Expand All @@ -32,7 +31,6 @@
class DefaultTestEnv(BaseModel):
browser_workspace_dir: str = "path/to/workdir"
browser_mode: str = "native"
browser_public_port: str = "8085"
browser_port_range: str = "[9000, 9100]"
controller_job_dir: str = "path/to/jobdir"
controller_host: str = "controller.ocrdhost.com"
Expand Down Expand Up @@ -70,7 +68,6 @@ def test__can_parse_env_file() -> None:
ocrd_browser=OcrdBrowserSettings(
mode=env.browser_mode,
workspace_dir=Path(env.browser_workspace_dir),
public_port=int(env.browser_public_port),
port_range=(9000, 9100),
),
ocrd_controller=OcrdControllerSettings(
Expand Down

0 comments on commit 4a8b587

Please sign in to comment.