diff --git a/.github/workflows/iris-unit-tests.yaml b/.github/workflows/iris-unit-tests.yaml index 438f45fccd..5d50507482 100644 --- a/.github/workflows/iris-unit-tests.yaml +++ b/.github/workflows/iris-unit-tests.yaml @@ -31,6 +31,11 @@ jobs: with: python-version: ${{ matrix.python-version }} + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + - name: Install uv uses: astral-sh/setup-uv@v7 with: @@ -58,6 +63,11 @@ jobs: with: python-version: ${{ matrix.python-version }} + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + - name: Install uv uses: astral-sh/setup-uv@v7 with: diff --git a/.github/workflows/levanter-tests.yaml b/.github/workflows/levanter-tests.yaml index 5dfcd83235..f0bd2eaee3 100644 --- a/.github/workflows/levanter-tests.yaml +++ b/.github/workflows/levanter-tests.yaml @@ -30,6 +30,10 @@ jobs: python-version: ${{ matrix.python-version }} enable-cache: true working-directory: lib/levanter + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" - name: Set up Python run: uv python install - name: Install dependencies @@ -57,6 +61,10 @@ jobs: python-version: ${{ matrix.python-version }} enable-cache: true working-directory: lib/levanter + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" - name: Set up Python run: uv python install - name: Install dependencies @@ -83,6 +91,10 @@ jobs: python-version: ${{ matrix.python-version }} enable-cache: true working-directory: lib/levanter + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" - name: Set up Python run: uv python install - name: Install dependencies @@ -110,6 +122,10 @@ jobs: python-version: ${{ matrix.python-version }} enable-cache: true working-directory: lib/levanter + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" - name: Set up Python run: uv python install - name: Install dependencies @@ -201,4 +217,22 @@ jobs: -v /tmp/uv-cache:/tmp/uv-cache:rw \ -w /workspace \ $DOCKER_IMAGE \ - bash -c "cp -a /workspace-src/. /workspace/ && cd /workspace && timeout --kill-after=5 --signal=TERM 890 uv run --package levanter --frozen --group test --with 'jax[tpu]==$JAX_VERSION' pytest lib/levanter/tests -m 'not entry and not ray and not slow and not torch' --ignore=lib/levanter/tests/test_audio.py --ignore=lib/levanter/tests/test_new_cache.py --ignore=lib/levanter/tests/test_hf_checkpoints.py --ignore=lib/levanter/tests/test_hf_gpt2_serialize.py --ignore=lib/levanter/tests/test_gdn_layer.py -v --tb=short --log-cli-level=WARNING --durations=20" + bash -c "\ + # Install Node.js in userspace if not present (needed for protobuf generation during uv sync) + if ! command -v npx >/dev/null 2>&1; then \ + echo '::group::Installing Node.js in userspace'; \ + curl -fsSL https://nodejs.org/dist/v22.16.0/node-v22.16.0-linux-x64.tar.xz | tar -xJ -C /tmp && \ + export PATH=/tmp/node-v22.16.0-linux-x64/bin:\$PATH; \ + echo '::endgroup::'; \ + fi && \ + cp -a /workspace-src/. /workspace/ && cd /workspace && \ + timeout --kill-after=5 --signal=TERM 890 \ + uv run --package levanter --frozen --group test --with 'jax[tpu]==$JAX_VERSION' \ + pytest lib/levanter/tests \ + -m 'not entry and not ray and not slow and not torch' \ + --ignore=lib/levanter/tests/test_audio.py \ + --ignore=lib/levanter/tests/test_new_cache.py \ + --ignore=lib/levanter/tests/test_hf_checkpoints.py \ + --ignore=lib/levanter/tests/test_hf_gpt2_serialize.py \ + --ignore=lib/levanter/tests/test_gdn_layer.py \ + -v --tb=short --log-cli-level=WARNING --durations=20" diff --git a/.github/workflows/marin-docs.yaml b/.github/workflows/marin-docs.yaml index a4d00b2746..68f2e642dd 100644 --- a/.github/workflows/marin-docs.yaml +++ b/.github/workflows/marin-docs.yaml @@ -24,6 +24,11 @@ jobs: python-version: "3.11" enable-cache: true + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + - name: Set up Python run: uv python install diff --git a/.github/workflows/marin-itest.yaml b/.github/workflows/marin-itest.yaml index 975a6f58c7..5f098e998d 100644 --- a/.github/workflows/marin-itest.yaml +++ b/.github/workflows/marin-itest.yaml @@ -31,6 +31,11 @@ jobs: with: python-version: ${{ matrix.python-version }} + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + - name: Install uv uses: astral-sh/setup-uv@v7 with: diff --git a/.github/workflows/marin-lint-and-format.yaml b/.github/workflows/marin-lint-and-format.yaml index b922686541..cd344b17d7 100644 --- a/.github/workflows/marin-lint-and-format.yaml +++ b/.github/workflows/marin-lint-and-format.yaml @@ -24,5 +24,10 @@ jobs: python-version: "3.11" enable-cache: true + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + - name: Run pre-commit checks run: ./infra/pre-commit.py --all-files diff --git a/.github/workflows/marin-unit-tests.yaml b/.github/workflows/marin-unit-tests.yaml index 33ac257c7f..c7d6da3767 100644 --- a/.github/workflows/marin-unit-tests.yaml +++ b/.github/workflows/marin-unit-tests.yaml @@ -39,7 +39,7 @@ jobs: uv sync --package marin --extra cpu --extra dedup --group test --frozen - name: Set up Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} diff --git a/.github/workflows/zephyr-unit-tests.yaml b/.github/workflows/zephyr-unit-tests.yaml index b5092cdb24..9f1c99a412 100644 --- a/.github/workflows/zephyr-unit-tests.yaml +++ b/.github/workflows/zephyr-unit-tests.yaml @@ -31,6 +31,11 @@ jobs: with: python-version: ${{ matrix.python-version }} + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + - name: Install uv uses: astral-sh/setup-uv@v6 with: diff --git a/.gitignore b/.gitignore index e299114395..e3bf41919c 100644 --- a/.gitignore +++ b/.gitignore @@ -234,3 +234,8 @@ scr/* .agents/tmp/ .codex .entire + +# Generated protobuf and Connect RPC files (rebuilt by hatch build hook) +lib/iris/src/iris/rpc/*_pb2.py +lib/iris/src/iris/rpc/*_pb2.pyi +lib/iris/src/iris/rpc/*_connect.py diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 0a335d23be..70e8a835c5 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -4,6 +4,7 @@ build: os: "ubuntu-24.04" tools: python: "3.11" + nodejs: "22" commands: - pip install uv - uv sync --group docs --package marin diff --git a/Makefile b/Makefile index b2088ea509..688967bbf6 100644 --- a/Makefile +++ b/Makefile @@ -205,5 +205,20 @@ setup_pre_commit: chmod +x $$HOOK_PATH; \ echo "Installed git pre-commit hook -> $$HOOK_PATH" -dev_setup: install_uv install_gcloud get_secret_key get_ray_auth_token setup_pre_commit +install_node: + @if command -v node > /dev/null 2>&1; then \ + echo "Node.js $$(node --version) is already installed."; \ + elif command -v brew > /dev/null 2>&1; then \ + echo "Installing Node.js via Homebrew..."; \ + brew install node; \ + elif command -v apt-get > /dev/null 2>&1; then \ + echo "Installing Node.js via apt..."; \ + curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && \ + sudo apt-get install -y nodejs; \ + else \ + echo "Cannot auto-install Node.js. Please install manually: https://nodejs.org/"; \ + exit 1; \ + fi + +dev_setup: install_uv install_gcloud install_node get_secret_key get_ray_auth_token setup_pre_commit @echo "Dev setup complete." diff --git a/docker/marin/Dockerfile.tpu-ci b/docker/marin/Dockerfile.tpu-ci index 0b96d906ae..e45eadd0f0 100644 --- a/docker/marin/Dockerfile.tpu-ci +++ b/docker/marin/Dockerfile.tpu-ci @@ -20,6 +20,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libssl-dev \ python3.11 \ python3.11-dev \ + && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ + && apt-get install -y --no-install-recommends nodejs \ && rm -rf /var/lib/apt/lists/* RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 diff --git a/infra/pre-commit.py b/infra/pre-commit.py index 6083076cd9..a59b338bd3 100755 --- a/infra/pre-commit.py +++ b/infra/pre-commit.py @@ -528,10 +528,45 @@ def check_notebooks(files: list[pathlib.Path], fix: bool) -> int: return _record("Jupyter notebooks", 0) +def _ensure_iris_protos() -> None: + """Generate iris protobuf files if they are missing and npx is available. + + Pyrefly needs the generated *_pb2.py and *_connect.py files on disk to + resolve imports from other modules, even when the generated files themselves + are excluded from type-checking via project-excludes. + """ + import shutil + + rpc_dir = ROOT_DIR / "lib" / "iris" / "src" / "iris" / "rpc" + # Check if any pb2 file exists already + if list(rpc_dir.glob("*_pb2.py")): + return + + generate_script = ROOT_DIR / "lib" / "iris" / "scripts" / "generate_protos.py" + if not generate_script.exists(): + return + + if shutil.which("npx") is None: + print(" ⚠ Iris protobuf files are missing and npx is not installed; pyrefly may report false errors") + return + + print(" Generating iris protobuf files for type checking...") + result = subprocess.run( + [sys.executable, str(generate_script)], + cwd=ROOT_DIR / "lib" / "iris", + capture_output=True, + text=True, + ) + if result.returncode != 0: + print(f" ⚠ Proto generation failed: {result.stderr.strip()}") + + def check_pyrefly(files: list[pathlib.Path], fix: bool) -> int: if not files: return 0 + _ensure_iris_protos() + args = ["uvx", "pyrefly@0.42.0", "check", "--baseline", ".pyrefly-baseline.json"] result = run_cmd(args) output = (result.stdout + result.stderr).strip() diff --git a/lib/iris/hatch_build.py b/lib/iris/hatch_build.py new file mode 100644 index 0000000000..11026935c2 --- /dev/null +++ b/lib/iris/hatch_build.py @@ -0,0 +1,145 @@ +# Copyright The Marin Authors +# SPDX-License-Identifier: Apache-2.0 + +"""Hatchling custom build hook for Iris. + +Regenerates protobuf files from .proto sources and rebuilds the Vue dashboard +when source files are newer than their generated outputs. This runs automatically +during ``uv sync`` / ``pip install -e .`` / wheel builds, eliminating the need +to check generated files into git or manually run build steps. +""" + +import logging +import shutil +import subprocess +import sys +from pathlib import Path + +from hatchling.builders.hooks.plugin.interface import BuildHookInterface + +logger = logging.getLogger(__name__) + +# Glob patterns for source and generated files, relative to the iris package root. +_PROTO_SOURCE_GLOBS = ["src/iris/rpc/*.proto"] +_PROTO_OUTPUT_GLOBS = ["src/iris/rpc/*_pb2.py", "src/iris/rpc/*_pb2.pyi", "src/iris/rpc/*_connect.py"] + +_DASHBOARD_SOURCE_GLOBS = ["dashboard/src/**/*", "dashboard/package.json", "dashboard/rsbuild.config.ts"] +_DASHBOARD_OUTPUT_DIR = "dashboard/dist" + + +def _newest_mtime(root: Path, globs: list[str]) -> float: + """Return the newest mtime across all files matching the given globs.""" + newest = 0.0 + for pattern in globs: + for path in root.glob(pattern): + if path.is_file(): + newest = max(newest, path.stat().st_mtime) + return newest + + +def _oldest_mtime(root: Path, globs: list[str]) -> float: + """Return the oldest mtime across all files matching the given globs. + + Returns 0.0 if no files match (meaning outputs don't exist yet). + """ + oldest = float("inf") + found = False + for pattern in globs: + for path in root.glob(pattern): + if path.is_file(): + found = True + oldest = min(oldest, path.stat().st_mtime) + return oldest if found else 0.0 + + +def _outputs_exist(root: Path, output_globs: list[str]) -> bool: + """Return True if at least one output file exists.""" + return _oldest_mtime(root, output_globs) > 0.0 + + +def _needs_rebuild(root: Path, source_globs: list[str], output_globs: list[str]) -> bool: + """Return True if any source file is newer than the oldest output file.""" + source_newest = _newest_mtime(root, source_globs) + output_oldest = _oldest_mtime(root, output_globs) + return source_newest > output_oldest + + +class CustomBuildHook(BuildHookInterface): + PLUGIN_NAME = "iris-build" + + def initialize(self, version: str, build_data: dict) -> None: + root = Path(self.root) + self._maybe_generate_protos(root) + self._maybe_build_dashboard(root) + + def _maybe_generate_protos(self, root: Path) -> None: + outputs_present = _outputs_exist(root, _PROTO_OUTPUT_GLOBS) + + if outputs_present and not _needs_rebuild(root, _PROTO_SOURCE_GLOBS, _PROTO_OUTPUT_GLOBS): + logger.info("Protobuf outputs are up-to-date, skipping generation") + return + + generate_script = root / "scripts" / "generate_protos.py" + if not generate_script.exists(): + if not outputs_present: + raise RuntimeError( + "Protobuf outputs are missing and scripts/generate_protos.py not found. " + "Cannot build iris without generated protobuf files." + ) + logger.warning("scripts/generate_protos.py not found, using existing protobuf outputs") + return + + if shutil.which("npx") is None: + if not outputs_present: + raise RuntimeError( + "Protobuf outputs are missing and npx is not installed. " + "Install Node.js (which provides npx) to generate protobuf files: " + "https://nodejs.org/ or run `make install_node`" + ) + logger.warning("npx not found, using existing (possibly stale) protobuf outputs") + return + + logger.info("Regenerating protobuf files from .proto sources...") + result = subprocess.run( + [sys.executable, str(generate_script)], + cwd=root, + capture_output=True, + text=True, + ) + if result.returncode != 0: + raise RuntimeError(f"Protobuf generation failed:\n{result.stdout}\n{result.stderr}") + logger.info("Protobuf generation complete") + + def _maybe_build_dashboard(self, root: Path) -> None: + dashboard_dir = root / "dashboard" + if not (dashboard_dir / "package.json").exists(): + logger.info("Dashboard source not found, skipping build") + return + + dist_dir = root / _DASHBOARD_OUTPUT_DIR + dist_present = dist_dir.exists() and any(dist_dir.iterdir()) + + if shutil.which("npm") is None: + if not dist_present: + logger.warning( + "npm not found and dashboard/dist is missing. " + "Dashboard will not be available. Install Node.js to build it." + ) + return + + source_newest = _newest_mtime(root, _DASHBOARD_SOURCE_GLOBS) + if dist_present and source_newest > 0: + output_oldest = _oldest_mtime(root, [f"{_DASHBOARD_OUTPUT_DIR}/**/*"]) + if output_oldest > 0 and source_newest <= output_oldest: + logger.info("Dashboard assets are up-to-date, skipping build") + return + + logger.info("Building dashboard assets...") + result = subprocess.run(["npm", "ci"], cwd=dashboard_dir, capture_output=True, text=True) + if result.returncode != 0: + raise RuntimeError(f"npm ci failed:\n{result.stdout}\n{result.stderr}") + + result = subprocess.run(["npm", "run", "build"], cwd=dashboard_dir, capture_output=True, text=True) + if result.returncode != 0: + raise RuntimeError(f"Dashboard build failed:\n{result.stdout}\n{result.stderr}") + logger.info("Dashboard build complete") diff --git a/lib/iris/pyproject.toml b/lib/iris/pyproject.toml index e100ebfe77..897fbc3a77 100644 --- a/lib/iris/pyproject.toml +++ b/lib/iris/pyproject.toml @@ -9,7 +9,7 @@ requires-python = ">=3.11,<3.13" dependencies = [ "click>=8.3.1", "cloudpickle>=3.1.2", - "connect-python @ git+https://github.com/connectrpc/connect-python.git@5342eacecef85e52717604ee5ac7e03a1e16c7ac", + "connect-python>=0.8.1", "fsspec>=2024.0.0", "gcsfs>=2024.0.0", "s3fs>=2024.0.0", @@ -52,8 +52,7 @@ dev = [ "pytest>=8.3.2", ] -[tool.hatch.metadata] -allow-direct-references = true +[tool.hatch.build.hooks.custom] [tool.hatch.build.targets.wheel] packages = ["src/iris"] diff --git a/lib/iris/src/iris/rpc/actor_connect.py b/lib/iris/src/iris/rpc/actor_connect.py deleted file mode 100644 index 468fab4f90..0000000000 --- a/lib/iris/src/iris/rpc/actor_connect.py +++ /dev/null @@ -1,510 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT! -# source: actor.proto - -from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping -from typing import Protocol - -from connectrpc.client import ConnectClient, ConnectClientSync -from connectrpc.code import Code -from connectrpc.errors import ConnectError -from connectrpc.interceptor import Interceptor, InterceptorSync -from connectrpc.method import IdempotencyLevel, MethodInfo -from connectrpc.request import Headers, RequestContext -from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync -from . import actor_pb2 as actor__pb2 - - -class ActorService(Protocol): - async def call(self, request: actor__pb2.ActorCall, ctx: RequestContext) -> actor__pb2.ActorResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def health_check(self, request: actor__pb2.Empty, ctx: RequestContext) -> actor__pb2.HealthResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def list_methods(self, request: actor__pb2.ListMethodsRequest, ctx: RequestContext) -> actor__pb2.ListMethodsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def list_actors(self, request: actor__pb2.ListActorsRequest, ctx: RequestContext) -> actor__pb2.ListActorsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def start_operation(self, request: actor__pb2.ActorCall, ctx: RequestContext) -> actor__pb2.Operation: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def get_operation(self, request: actor__pb2.OperationId, ctx: RequestContext) -> actor__pb2.Operation: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def cancel_operation(self, request: actor__pb2.OperationId, ctx: RequestContext) -> actor__pb2.Operation: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - -class ActorServiceASGIApplication(ConnectASGIApplication[ActorService]): - def __init__(self, service: ActorService | AsyncGenerator[ActorService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None: - super().__init__( - service=service, - endpoints=lambda svc: { - "/iris.actor.ActorService/Call": Endpoint.unary( - method=MethodInfo( - name="Call", - service_name="iris.actor.ActorService", - input=actor__pb2.ActorCall, - output=actor__pb2.ActorResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.call, - ), - "/iris.actor.ActorService/HealthCheck": Endpoint.unary( - method=MethodInfo( - name="HealthCheck", - service_name="iris.actor.ActorService", - input=actor__pb2.Empty, - output=actor__pb2.HealthResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.health_check, - ), - "/iris.actor.ActorService/ListMethods": Endpoint.unary( - method=MethodInfo( - name="ListMethods", - service_name="iris.actor.ActorService", - input=actor__pb2.ListMethodsRequest, - output=actor__pb2.ListMethodsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.list_methods, - ), - "/iris.actor.ActorService/ListActors": Endpoint.unary( - method=MethodInfo( - name="ListActors", - service_name="iris.actor.ActorService", - input=actor__pb2.ListActorsRequest, - output=actor__pb2.ListActorsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.list_actors, - ), - "/iris.actor.ActorService/StartOperation": Endpoint.unary( - method=MethodInfo( - name="StartOperation", - service_name="iris.actor.ActorService", - input=actor__pb2.ActorCall, - output=actor__pb2.Operation, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.start_operation, - ), - "/iris.actor.ActorService/GetOperation": Endpoint.unary( - method=MethodInfo( - name="GetOperation", - service_name="iris.actor.ActorService", - input=actor__pb2.OperationId, - output=actor__pb2.Operation, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.get_operation, - ), - "/iris.actor.ActorService/CancelOperation": Endpoint.unary( - method=MethodInfo( - name="CancelOperation", - service_name="iris.actor.ActorService", - input=actor__pb2.OperationId, - output=actor__pb2.Operation, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.cancel_operation, - ), - }, - interceptors=interceptors, - read_max_bytes=read_max_bytes, - ) - - @property - def path(self) -> str: - """Returns the URL path to mount the application to when serving multiple applications.""" - return "/iris.actor.ActorService" - - -class ActorServiceClient(ConnectClient): - async def call( - self, - request: actor__pb2.ActorCall, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.ActorResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="Call", - service_name="iris.actor.ActorService", - input=actor__pb2.ActorCall, - output=actor__pb2.ActorResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def health_check( - self, - request: actor__pb2.Empty, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.HealthResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="HealthCheck", - service_name="iris.actor.ActorService", - input=actor__pb2.Empty, - output=actor__pb2.HealthResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def list_methods( - self, - request: actor__pb2.ListMethodsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.ListMethodsResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="ListMethods", - service_name="iris.actor.ActorService", - input=actor__pb2.ListMethodsRequest, - output=actor__pb2.ListMethodsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def list_actors( - self, - request: actor__pb2.ListActorsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.ListActorsResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="ListActors", - service_name="iris.actor.ActorService", - input=actor__pb2.ListActorsRequest, - output=actor__pb2.ListActorsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def start_operation( - self, - request: actor__pb2.ActorCall, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.Operation: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="StartOperation", - service_name="iris.actor.ActorService", - input=actor__pb2.ActorCall, - output=actor__pb2.Operation, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def get_operation( - self, - request: actor__pb2.OperationId, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.Operation: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="GetOperation", - service_name="iris.actor.ActorService", - input=actor__pb2.OperationId, - output=actor__pb2.Operation, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def cancel_operation( - self, - request: actor__pb2.OperationId, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.Operation: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="CancelOperation", - service_name="iris.actor.ActorService", - input=actor__pb2.OperationId, - output=actor__pb2.Operation, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - -class ActorServiceSync(Protocol): - def call(self, request: actor__pb2.ActorCall, ctx: RequestContext) -> actor__pb2.ActorResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def health_check(self, request: actor__pb2.Empty, ctx: RequestContext) -> actor__pb2.HealthResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def list_methods(self, request: actor__pb2.ListMethodsRequest, ctx: RequestContext) -> actor__pb2.ListMethodsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def list_actors(self, request: actor__pb2.ListActorsRequest, ctx: RequestContext) -> actor__pb2.ListActorsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def start_operation(self, request: actor__pb2.ActorCall, ctx: RequestContext) -> actor__pb2.Operation: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def get_operation(self, request: actor__pb2.OperationId, ctx: RequestContext) -> actor__pb2.Operation: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def cancel_operation(self, request: actor__pb2.OperationId, ctx: RequestContext) -> actor__pb2.Operation: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - -class ActorServiceWSGIApplication(ConnectWSGIApplication): - def __init__(self, service: ActorServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None: - super().__init__( - endpoints={ - "/iris.actor.ActorService/Call": EndpointSync.unary( - method=MethodInfo( - name="Call", - service_name="iris.actor.ActorService", - input=actor__pb2.ActorCall, - output=actor__pb2.ActorResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.call, - ), - "/iris.actor.ActorService/HealthCheck": EndpointSync.unary( - method=MethodInfo( - name="HealthCheck", - service_name="iris.actor.ActorService", - input=actor__pb2.Empty, - output=actor__pb2.HealthResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.health_check, - ), - "/iris.actor.ActorService/ListMethods": EndpointSync.unary( - method=MethodInfo( - name="ListMethods", - service_name="iris.actor.ActorService", - input=actor__pb2.ListMethodsRequest, - output=actor__pb2.ListMethodsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.list_methods, - ), - "/iris.actor.ActorService/ListActors": EndpointSync.unary( - method=MethodInfo( - name="ListActors", - service_name="iris.actor.ActorService", - input=actor__pb2.ListActorsRequest, - output=actor__pb2.ListActorsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.list_actors, - ), - "/iris.actor.ActorService/StartOperation": EndpointSync.unary( - method=MethodInfo( - name="StartOperation", - service_name="iris.actor.ActorService", - input=actor__pb2.ActorCall, - output=actor__pb2.Operation, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.start_operation, - ), - "/iris.actor.ActorService/GetOperation": EndpointSync.unary( - method=MethodInfo( - name="GetOperation", - service_name="iris.actor.ActorService", - input=actor__pb2.OperationId, - output=actor__pb2.Operation, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.get_operation, - ), - "/iris.actor.ActorService/CancelOperation": EndpointSync.unary( - method=MethodInfo( - name="CancelOperation", - service_name="iris.actor.ActorService", - input=actor__pb2.OperationId, - output=actor__pb2.Operation, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.cancel_operation, - ), - }, - interceptors=interceptors, - read_max_bytes=read_max_bytes, - ) - - @property - def path(self) -> str: - """Returns the URL path to mount the application to when serving multiple applications.""" - return "/iris.actor.ActorService" - - -class ActorServiceClientSync(ConnectClientSync): - def call( - self, - request: actor__pb2.ActorCall, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.ActorResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="Call", - service_name="iris.actor.ActorService", - input=actor__pb2.ActorCall, - output=actor__pb2.ActorResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def health_check( - self, - request: actor__pb2.Empty, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.HealthResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="HealthCheck", - service_name="iris.actor.ActorService", - input=actor__pb2.Empty, - output=actor__pb2.HealthResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def list_methods( - self, - request: actor__pb2.ListMethodsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.ListMethodsResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="ListMethods", - service_name="iris.actor.ActorService", - input=actor__pb2.ListMethodsRequest, - output=actor__pb2.ListMethodsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def list_actors( - self, - request: actor__pb2.ListActorsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.ListActorsResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="ListActors", - service_name="iris.actor.ActorService", - input=actor__pb2.ListActorsRequest, - output=actor__pb2.ListActorsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def start_operation( - self, - request: actor__pb2.ActorCall, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.Operation: - return self.execute_unary( - request=request, - method=MethodInfo( - name="StartOperation", - service_name="iris.actor.ActorService", - input=actor__pb2.ActorCall, - output=actor__pb2.Operation, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def get_operation( - self, - request: actor__pb2.OperationId, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.Operation: - return self.execute_unary( - request=request, - method=MethodInfo( - name="GetOperation", - service_name="iris.actor.ActorService", - input=actor__pb2.OperationId, - output=actor__pb2.Operation, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def cancel_operation( - self, - request: actor__pb2.OperationId, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> actor__pb2.Operation: - return self.execute_unary( - request=request, - method=MethodInfo( - name="CancelOperation", - service_name="iris.actor.ActorService", - input=actor__pb2.OperationId, - output=actor__pb2.Operation, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) diff --git a/lib/iris/src/iris/rpc/actor_pb2.py b/lib/iris/src/iris/rpc/actor_pb2.py deleted file mode 100644 index b834f2d6cc..0000000000 --- a/lib/iris/src/iris/rpc/actor_pb2.py +++ /dev/null @@ -1,70 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: actor.proto -# Protobuf Python Version: 6.33.4 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 33, - 4, - '', - 'actor.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0b\x61\x63tor.proto\x12\niris.actor\"\xa1\x01\n\tActorCall\x12\x1f\n\x0bmethod_name\x18\x01 \x01(\tR\nmethodName\x12\x1d\n\nactor_name\x18\x02 \x01(\tR\tactorName\x12\'\n\x0fserialized_args\x18\x03 \x01(\x0cR\x0eserializedArgs\x12+\n\x11serialized_kwargs\x18\x04 \x01(\x0cR\x10serializedKwargs\"v\n\rActorResponse\x12+\n\x10serialized_value\x18\x01 \x01(\x0cH\x00R\x0fserializedValue\x12.\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x16.iris.actor.ActorErrorH\x00R\x05\x65rrorB\x08\n\x06result\"x\n\nActorError\x12\x1d\n\nerror_type\x18\x01 \x01(\tR\terrorType\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x31\n\x14serialized_exception\x18\x03 \x01(\x0cR\x13serializedException\"\x07\n\x05\x45mpty\"*\n\x0eHealthResponse\x12\x18\n\x07healthy\x18\x01 \x01(\x08R\x07healthy\"3\n\x12ListMethodsRequest\x12\x1d\n\nactor_name\x18\x01 \x01(\tR\tactorName\"\\\n\nMethodInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1c\n\tsignature\x18\x02 \x01(\tR\tsignature\x12\x1c\n\tdocstring\x18\x03 \x01(\tR\tdocstring\"G\n\x13ListMethodsResponse\x12\x30\n\x07methods\x18\x01 \x03(\x0b\x32\x16.iris.actor.MethodInfoR\x07methods\"\x13\n\x11ListActorsRequest\"\xe2\x01\n\tActorInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x19\n\x08\x61\x63tor_id\x18\x02 \x01(\tR\x07\x61\x63torId\x12(\n\x10registered_at_ms\x18\x03 \x01(\x03R\x0eregisteredAtMs\x12?\n\x08metadata\x18\x04 \x03(\x0b\x32#.iris.actor.ActorInfo.MetadataEntryR\x08metadata\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"C\n\x12ListActorsResponse\x12-\n\x06\x61\x63tors\x18\x01 \x03(\x0b\x32\x15.iris.actor.ActorInfoR\x06\x61\x63tors\"\x89\x02\n\tOperation\x12!\n\x0coperation_id\x18\x01 \x01(\tR\x0boperationId\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\x1b.iris.actor.Operation.StateR\x05state\x12+\n\x11serialized_result\x18\x03 \x01(\x0cR\x10serializedResult\x12,\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x16.iris.actor.ActorErrorR\x05\x65rror\"K\n\x05State\x12\x0b\n\x07PENDING\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\r\n\tCANCELLED\x10\x04\"0\n\x0bOperationId\x12!\n\x0coperation_id\x18\x01 \x01(\tR\x0boperationId2\xe6\x03\n\x0c\x41\x63torService\x12\x38\n\x04\x43\x61ll\x12\x15.iris.actor.ActorCall\x1a\x19.iris.actor.ActorResponse\x12<\n\x0bHealthCheck\x12\x11.iris.actor.Empty\x1a\x1a.iris.actor.HealthResponse\x12N\n\x0bListMethods\x12\x1e.iris.actor.ListMethodsRequest\x1a\x1f.iris.actor.ListMethodsResponse\x12K\n\nListActors\x12\x1d.iris.actor.ListActorsRequest\x1a\x1e.iris.actor.ListActorsResponse\x12>\n\x0eStartOperation\x12\x15.iris.actor.ActorCall\x1a\x15.iris.actor.Operation\x12>\n\x0cGetOperation\x12\x17.iris.actor.OperationId\x1a\x15.iris.actor.Operation\x12\x41\n\x0f\x43\x61ncelOperation\x12\x17.iris.actor.OperationId\x1a\x15.iris.actor.OperationBh\n\x0e\x63om.iris.actorB\nActorProtoP\x01\x90\x01\x01\xa2\x02\x03IAX\xaa\x02\nIris.Actor\xca\x02\nIris\\Actor\xe2\x02\x16Iris\\Actor\\GPBMetadata\xea\x02\x0bIris::Actorb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'actor_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016com.iris.actorB\nActorProtoP\001\220\001\001\242\002\003IAX\252\002\nIris.Actor\312\002\nIris\\Actor\342\002\026Iris\\Actor\\GPBMetadata\352\002\013Iris::Actor' - _globals['_ACTORINFO_METADATAENTRY']._loaded_options = None - _globals['_ACTORINFO_METADATAENTRY']._serialized_options = b'8\001' - _globals['_ACTORCALL']._serialized_start=28 - _globals['_ACTORCALL']._serialized_end=189 - _globals['_ACTORRESPONSE']._serialized_start=191 - _globals['_ACTORRESPONSE']._serialized_end=309 - _globals['_ACTORERROR']._serialized_start=311 - _globals['_ACTORERROR']._serialized_end=431 - _globals['_EMPTY']._serialized_start=433 - _globals['_EMPTY']._serialized_end=440 - _globals['_HEALTHRESPONSE']._serialized_start=442 - _globals['_HEALTHRESPONSE']._serialized_end=484 - _globals['_LISTMETHODSREQUEST']._serialized_start=486 - _globals['_LISTMETHODSREQUEST']._serialized_end=537 - _globals['_METHODINFO']._serialized_start=539 - _globals['_METHODINFO']._serialized_end=631 - _globals['_LISTMETHODSRESPONSE']._serialized_start=633 - _globals['_LISTMETHODSRESPONSE']._serialized_end=704 - _globals['_LISTACTORSREQUEST']._serialized_start=706 - _globals['_LISTACTORSREQUEST']._serialized_end=725 - _globals['_ACTORINFO']._serialized_start=728 - _globals['_ACTORINFO']._serialized_end=954 - _globals['_ACTORINFO_METADATAENTRY']._serialized_start=895 - _globals['_ACTORINFO_METADATAENTRY']._serialized_end=954 - _globals['_LISTACTORSRESPONSE']._serialized_start=956 - _globals['_LISTACTORSRESPONSE']._serialized_end=1023 - _globals['_OPERATION']._serialized_start=1026 - _globals['_OPERATION']._serialized_end=1291 - _globals['_OPERATION_STATE']._serialized_start=1216 - _globals['_OPERATION_STATE']._serialized_end=1291 - _globals['_OPERATIONID']._serialized_start=1293 - _globals['_OPERATIONID']._serialized_end=1341 - _globals['_ACTORSERVICE']._serialized_start=1344 - _globals['_ACTORSERVICE']._serialized_end=1830 -_builder.BuildServices(DESCRIPTOR, 'actor_pb2', _globals) -# @@protoc_insertion_point(module_scope) diff --git a/lib/iris/src/iris/rpc/actor_pb2.pyi b/lib/iris/src/iris/rpc/actor_pb2.pyi deleted file mode 100644 index 7dc70c57b0..0000000000 --- a/lib/iris/src/iris/rpc/actor_pb2.pyi +++ /dev/null @@ -1,134 +0,0 @@ -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import service as _service -from collections.abc import Iterable as _Iterable, Mapping as _Mapping -from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class ActorCall(_message.Message): - __slots__ = ("method_name", "actor_name", "serialized_args", "serialized_kwargs") - METHOD_NAME_FIELD_NUMBER: _ClassVar[int] - ACTOR_NAME_FIELD_NUMBER: _ClassVar[int] - SERIALIZED_ARGS_FIELD_NUMBER: _ClassVar[int] - SERIALIZED_KWARGS_FIELD_NUMBER: _ClassVar[int] - method_name: str - actor_name: str - serialized_args: bytes - serialized_kwargs: bytes - def __init__(self, method_name: _Optional[str] = ..., actor_name: _Optional[str] = ..., serialized_args: _Optional[bytes] = ..., serialized_kwargs: _Optional[bytes] = ...) -> None: ... - -class ActorResponse(_message.Message): - __slots__ = ("serialized_value", "error") - SERIALIZED_VALUE_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - serialized_value: bytes - error: ActorError - def __init__(self, serialized_value: _Optional[bytes] = ..., error: _Optional[_Union[ActorError, _Mapping]] = ...) -> None: ... - -class ActorError(_message.Message): - __slots__ = ("error_type", "message", "serialized_exception") - ERROR_TYPE_FIELD_NUMBER: _ClassVar[int] - MESSAGE_FIELD_NUMBER: _ClassVar[int] - SERIALIZED_EXCEPTION_FIELD_NUMBER: _ClassVar[int] - error_type: str - message: str - serialized_exception: bytes - def __init__(self, error_type: _Optional[str] = ..., message: _Optional[str] = ..., serialized_exception: _Optional[bytes] = ...) -> None: ... - -class Empty(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class HealthResponse(_message.Message): - __slots__ = ("healthy",) - HEALTHY_FIELD_NUMBER: _ClassVar[int] - healthy: bool - def __init__(self, healthy: _Optional[bool] = ...) -> None: ... - -class ListMethodsRequest(_message.Message): - __slots__ = ("actor_name",) - ACTOR_NAME_FIELD_NUMBER: _ClassVar[int] - actor_name: str - def __init__(self, actor_name: _Optional[str] = ...) -> None: ... - -class MethodInfo(_message.Message): - __slots__ = ("name", "signature", "docstring") - NAME_FIELD_NUMBER: _ClassVar[int] - SIGNATURE_FIELD_NUMBER: _ClassVar[int] - DOCSTRING_FIELD_NUMBER: _ClassVar[int] - name: str - signature: str - docstring: str - def __init__(self, name: _Optional[str] = ..., signature: _Optional[str] = ..., docstring: _Optional[str] = ...) -> None: ... - -class ListMethodsResponse(_message.Message): - __slots__ = ("methods",) - METHODS_FIELD_NUMBER: _ClassVar[int] - methods: _containers.RepeatedCompositeFieldContainer[MethodInfo] - def __init__(self, methods: _Optional[_Iterable[_Union[MethodInfo, _Mapping]]] = ...) -> None: ... - -class ListActorsRequest(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class ActorInfo(_message.Message): - __slots__ = ("name", "actor_id", "registered_at_ms", "metadata") - class MetadataEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - NAME_FIELD_NUMBER: _ClassVar[int] - ACTOR_ID_FIELD_NUMBER: _ClassVar[int] - REGISTERED_AT_MS_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - name: str - actor_id: str - registered_at_ms: int - metadata: _containers.ScalarMap[str, str] - def __init__(self, name: _Optional[str] = ..., actor_id: _Optional[str] = ..., registered_at_ms: _Optional[int] = ..., metadata: _Optional[_Mapping[str, str]] = ...) -> None: ... - -class ListActorsResponse(_message.Message): - __slots__ = ("actors",) - ACTORS_FIELD_NUMBER: _ClassVar[int] - actors: _containers.RepeatedCompositeFieldContainer[ActorInfo] - def __init__(self, actors: _Optional[_Iterable[_Union[ActorInfo, _Mapping]]] = ...) -> None: ... - -class Operation(_message.Message): - __slots__ = ("operation_id", "state", "serialized_result", "error") - class State(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - PENDING: _ClassVar[Operation.State] - RUNNING: _ClassVar[Operation.State] - SUCCEEDED: _ClassVar[Operation.State] - FAILED: _ClassVar[Operation.State] - CANCELLED: _ClassVar[Operation.State] - PENDING: Operation.State - RUNNING: Operation.State - SUCCEEDED: Operation.State - FAILED: Operation.State - CANCELLED: Operation.State - OPERATION_ID_FIELD_NUMBER: _ClassVar[int] - STATE_FIELD_NUMBER: _ClassVar[int] - SERIALIZED_RESULT_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - operation_id: str - state: Operation.State - serialized_result: bytes - error: ActorError - def __init__(self, operation_id: _Optional[str] = ..., state: _Optional[_Union[Operation.State, str]] = ..., serialized_result: _Optional[bytes] = ..., error: _Optional[_Union[ActorError, _Mapping]] = ...) -> None: ... - -class OperationId(_message.Message): - __slots__ = ("operation_id",) - OPERATION_ID_FIELD_NUMBER: _ClassVar[int] - operation_id: str - def __init__(self, operation_id: _Optional[str] = ...) -> None: ... - -class ActorService(_service.service): ... - -class ActorService_Stub(ActorService): ... diff --git a/lib/iris/src/iris/rpc/cluster_connect.py b/lib/iris/src/iris/rpc/cluster_connect.py deleted file mode 100644 index f911e1e838..0000000000 --- a/lib/iris/src/iris/rpc/cluster_connect.py +++ /dev/null @@ -1,2240 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT! -# source: cluster.proto - -from collections.abc import AsyncGenerator, AsyncIterator, Iterable, Iterator, Mapping -from typing import Protocol - -from connectrpc.client import ConnectClient, ConnectClientSync -from connectrpc.code import Code -from connectrpc.errors import ConnectError -from connectrpc.interceptor import Interceptor, InterceptorSync -from connectrpc.method import IdempotencyLevel, MethodInfo -from connectrpc.request import Headers, RequestContext -from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync -from . import cluster_pb2 as cluster__pb2 - - -class ControllerService(Protocol): - async def launch_job(self, request: cluster__pb2.Controller.LaunchJobRequest, ctx: RequestContext) -> cluster__pb2.Controller.LaunchJobResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def get_job_status(self, request: cluster__pb2.Controller.GetJobStatusRequest, ctx: RequestContext) -> cluster__pb2.Controller.GetJobStatusResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def terminate_job(self, request: cluster__pb2.Controller.TerminateJobRequest, ctx: RequestContext) -> cluster__pb2.Empty: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def list_jobs(self, request: cluster__pb2.Controller.ListJobsRequest, ctx: RequestContext) -> cluster__pb2.Controller.ListJobsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def get_task_status(self, request: cluster__pb2.Controller.GetTaskStatusRequest, ctx: RequestContext) -> cluster__pb2.Controller.GetTaskStatusResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def list_tasks(self, request: cluster__pb2.Controller.ListTasksRequest, ctx: RequestContext) -> cluster__pb2.Controller.ListTasksResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def register(self, request: cluster__pb2.Controller.RegisterRequest, ctx: RequestContext) -> cluster__pb2.Controller.RegisterResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def list_workers(self, request: cluster__pb2.Controller.ListWorkersRequest, ctx: RequestContext) -> cluster__pb2.Controller.ListWorkersResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def register_endpoint(self, request: cluster__pb2.Controller.RegisterEndpointRequest, ctx: RequestContext) -> cluster__pb2.Controller.RegisterEndpointResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def unregister_endpoint(self, request: cluster__pb2.Controller.UnregisterEndpointRequest, ctx: RequestContext) -> cluster__pb2.Empty: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def list_endpoints(self, request: cluster__pb2.Controller.ListEndpointsRequest, ctx: RequestContext) -> cluster__pb2.Controller.ListEndpointsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def get_autoscaler_status(self, request: cluster__pb2.Controller.GetAutoscalerStatusRequest, ctx: RequestContext) -> cluster__pb2.Controller.GetAutoscalerStatusResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def get_transactions(self, request: cluster__pb2.Controller.GetTransactionsRequest, ctx: RequestContext) -> cluster__pb2.Controller.GetTransactionsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def list_users(self, request: cluster__pb2.Controller.ListUsersRequest, ctx: RequestContext) -> cluster__pb2.Controller.ListUsersResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def get_task_logs(self, request: cluster__pb2.Controller.GetTaskLogsRequest, ctx: RequestContext) -> cluster__pb2.Controller.GetTaskLogsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def fetch_logs(self, request: cluster__pb2.FetchLogsRequest, ctx: RequestContext) -> cluster__pb2.FetchLogsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def profile_task(self, request: cluster__pb2.ProfileTaskRequest, ctx: RequestContext) -> cluster__pb2.ProfileTaskResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def get_worker_status(self, request: cluster__pb2.Controller.GetWorkerStatusRequest, ctx: RequestContext) -> cluster__pb2.Controller.GetWorkerStatusResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def begin_checkpoint(self, request: cluster__pb2.Controller.BeginCheckpointRequest, ctx: RequestContext) -> cluster__pb2.Controller.BeginCheckpointResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def get_process_status(self, request: cluster__pb2.GetProcessStatusRequest, ctx: RequestContext) -> cluster__pb2.GetProcessStatusResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def get_auth_info(self, request: cluster__pb2.GetAuthInfoRequest, ctx: RequestContext) -> cluster__pb2.GetAuthInfoResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def login(self, request: cluster__pb2.LoginRequest, ctx: RequestContext) -> cluster__pb2.LoginResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def create_api_key(self, request: cluster__pb2.CreateApiKeyRequest, ctx: RequestContext) -> cluster__pb2.CreateApiKeyResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def revoke_api_key(self, request: cluster__pb2.RevokeApiKeyRequest, ctx: RequestContext) -> cluster__pb2.Empty: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def list_api_keys(self, request: cluster__pb2.ListApiKeysRequest, ctx: RequestContext) -> cluster__pb2.ListApiKeysResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def get_current_user(self, request: cluster__pb2.GetCurrentUserRequest, ctx: RequestContext) -> cluster__pb2.GetCurrentUserResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - -class ControllerServiceASGIApplication(ConnectASGIApplication[ControllerService]): - def __init__(self, service: ControllerService | AsyncGenerator[ControllerService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None: - super().__init__( - service=service, - endpoints=lambda svc: { - "/iris.cluster.ControllerService/LaunchJob": Endpoint.unary( - method=MethodInfo( - name="LaunchJob", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.LaunchJobRequest, - output=cluster__pb2.Controller.LaunchJobResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.launch_job, - ), - "/iris.cluster.ControllerService/GetJobStatus": Endpoint.unary( - method=MethodInfo( - name="GetJobStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetJobStatusRequest, - output=cluster__pb2.Controller.GetJobStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.get_job_status, - ), - "/iris.cluster.ControllerService/TerminateJob": Endpoint.unary( - method=MethodInfo( - name="TerminateJob", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.TerminateJobRequest, - output=cluster__pb2.Empty, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.terminate_job, - ), - "/iris.cluster.ControllerService/ListJobs": Endpoint.unary( - method=MethodInfo( - name="ListJobs", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListJobsRequest, - output=cluster__pb2.Controller.ListJobsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.list_jobs, - ), - "/iris.cluster.ControllerService/GetTaskStatus": Endpoint.unary( - method=MethodInfo( - name="GetTaskStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetTaskStatusRequest, - output=cluster__pb2.Controller.GetTaskStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.get_task_status, - ), - "/iris.cluster.ControllerService/ListTasks": Endpoint.unary( - method=MethodInfo( - name="ListTasks", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListTasksRequest, - output=cluster__pb2.Controller.ListTasksResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.list_tasks, - ), - "/iris.cluster.ControllerService/Register": Endpoint.unary( - method=MethodInfo( - name="Register", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.RegisterRequest, - output=cluster__pb2.Controller.RegisterResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.register, - ), - "/iris.cluster.ControllerService/ListWorkers": Endpoint.unary( - method=MethodInfo( - name="ListWorkers", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListWorkersRequest, - output=cluster__pb2.Controller.ListWorkersResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.list_workers, - ), - "/iris.cluster.ControllerService/RegisterEndpoint": Endpoint.unary( - method=MethodInfo( - name="RegisterEndpoint", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.RegisterEndpointRequest, - output=cluster__pb2.Controller.RegisterEndpointResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.register_endpoint, - ), - "/iris.cluster.ControllerService/UnregisterEndpoint": Endpoint.unary( - method=MethodInfo( - name="UnregisterEndpoint", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.UnregisterEndpointRequest, - output=cluster__pb2.Empty, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.unregister_endpoint, - ), - "/iris.cluster.ControllerService/ListEndpoints": Endpoint.unary( - method=MethodInfo( - name="ListEndpoints", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListEndpointsRequest, - output=cluster__pb2.Controller.ListEndpointsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.list_endpoints, - ), - "/iris.cluster.ControllerService/GetAutoscalerStatus": Endpoint.unary( - method=MethodInfo( - name="GetAutoscalerStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetAutoscalerStatusRequest, - output=cluster__pb2.Controller.GetAutoscalerStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.get_autoscaler_status, - ), - "/iris.cluster.ControllerService/GetTransactions": Endpoint.unary( - method=MethodInfo( - name="GetTransactions", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetTransactionsRequest, - output=cluster__pb2.Controller.GetTransactionsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.get_transactions, - ), - "/iris.cluster.ControllerService/ListUsers": Endpoint.unary( - method=MethodInfo( - name="ListUsers", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListUsersRequest, - output=cluster__pb2.Controller.ListUsersResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.list_users, - ), - "/iris.cluster.ControllerService/GetTaskLogs": Endpoint.unary( - method=MethodInfo( - name="GetTaskLogs", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetTaskLogsRequest, - output=cluster__pb2.Controller.GetTaskLogsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.get_task_logs, - ), - "/iris.cluster.ControllerService/FetchLogs": Endpoint.unary( - method=MethodInfo( - name="FetchLogs", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.FetchLogsRequest, - output=cluster__pb2.FetchLogsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.fetch_logs, - ), - "/iris.cluster.ControllerService/ProfileTask": Endpoint.unary( - method=MethodInfo( - name="ProfileTask", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.ProfileTaskRequest, - output=cluster__pb2.ProfileTaskResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.profile_task, - ), - "/iris.cluster.ControllerService/GetWorkerStatus": Endpoint.unary( - method=MethodInfo( - name="GetWorkerStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetWorkerStatusRequest, - output=cluster__pb2.Controller.GetWorkerStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.get_worker_status, - ), - "/iris.cluster.ControllerService/BeginCheckpoint": Endpoint.unary( - method=MethodInfo( - name="BeginCheckpoint", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.BeginCheckpointRequest, - output=cluster__pb2.Controller.BeginCheckpointResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.begin_checkpoint, - ), - "/iris.cluster.ControllerService/GetProcessStatus": Endpoint.unary( - method=MethodInfo( - name="GetProcessStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.GetProcessStatusRequest, - output=cluster__pb2.GetProcessStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.get_process_status, - ), - "/iris.cluster.ControllerService/GetAuthInfo": Endpoint.unary( - method=MethodInfo( - name="GetAuthInfo", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.GetAuthInfoRequest, - output=cluster__pb2.GetAuthInfoResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.get_auth_info, - ), - "/iris.cluster.ControllerService/Login": Endpoint.unary( - method=MethodInfo( - name="Login", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.LoginRequest, - output=cluster__pb2.LoginResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.login, - ), - "/iris.cluster.ControllerService/CreateApiKey": Endpoint.unary( - method=MethodInfo( - name="CreateApiKey", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.CreateApiKeyRequest, - output=cluster__pb2.CreateApiKeyResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.create_api_key, - ), - "/iris.cluster.ControllerService/RevokeApiKey": Endpoint.unary( - method=MethodInfo( - name="RevokeApiKey", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.RevokeApiKeyRequest, - output=cluster__pb2.Empty, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.revoke_api_key, - ), - "/iris.cluster.ControllerService/ListApiKeys": Endpoint.unary( - method=MethodInfo( - name="ListApiKeys", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.ListApiKeysRequest, - output=cluster__pb2.ListApiKeysResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.list_api_keys, - ), - "/iris.cluster.ControllerService/GetCurrentUser": Endpoint.unary( - method=MethodInfo( - name="GetCurrentUser", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.GetCurrentUserRequest, - output=cluster__pb2.GetCurrentUserResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.get_current_user, - ), - }, - interceptors=interceptors, - read_max_bytes=read_max_bytes, - ) - - @property - def path(self) -> str: - """Returns the URL path to mount the application to when serving multiple applications.""" - return "/iris.cluster.ControllerService" - - -class ControllerServiceClient(ConnectClient): - async def launch_job( - self, - request: cluster__pb2.Controller.LaunchJobRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.LaunchJobResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="LaunchJob", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.LaunchJobRequest, - output=cluster__pb2.Controller.LaunchJobResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def get_job_status( - self, - request: cluster__pb2.Controller.GetJobStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.GetJobStatusResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="GetJobStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetJobStatusRequest, - output=cluster__pb2.Controller.GetJobStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def terminate_job( - self, - request: cluster__pb2.Controller.TerminateJobRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Empty: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="TerminateJob", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.TerminateJobRequest, - output=cluster__pb2.Empty, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def list_jobs( - self, - request: cluster__pb2.Controller.ListJobsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.ListJobsResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="ListJobs", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListJobsRequest, - output=cluster__pb2.Controller.ListJobsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def get_task_status( - self, - request: cluster__pb2.Controller.GetTaskStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.GetTaskStatusResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="GetTaskStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetTaskStatusRequest, - output=cluster__pb2.Controller.GetTaskStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def list_tasks( - self, - request: cluster__pb2.Controller.ListTasksRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.ListTasksResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="ListTasks", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListTasksRequest, - output=cluster__pb2.Controller.ListTasksResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def register( - self, - request: cluster__pb2.Controller.RegisterRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.RegisterResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="Register", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.RegisterRequest, - output=cluster__pb2.Controller.RegisterResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def list_workers( - self, - request: cluster__pb2.Controller.ListWorkersRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.ListWorkersResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="ListWorkers", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListWorkersRequest, - output=cluster__pb2.Controller.ListWorkersResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def register_endpoint( - self, - request: cluster__pb2.Controller.RegisterEndpointRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.RegisterEndpointResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="RegisterEndpoint", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.RegisterEndpointRequest, - output=cluster__pb2.Controller.RegisterEndpointResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def unregister_endpoint( - self, - request: cluster__pb2.Controller.UnregisterEndpointRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Empty: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="UnregisterEndpoint", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.UnregisterEndpointRequest, - output=cluster__pb2.Empty, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def list_endpoints( - self, - request: cluster__pb2.Controller.ListEndpointsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.ListEndpointsResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="ListEndpoints", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListEndpointsRequest, - output=cluster__pb2.Controller.ListEndpointsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def get_autoscaler_status( - self, - request: cluster__pb2.Controller.GetAutoscalerStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.GetAutoscalerStatusResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="GetAutoscalerStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetAutoscalerStatusRequest, - output=cluster__pb2.Controller.GetAutoscalerStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def get_transactions( - self, - request: cluster__pb2.Controller.GetTransactionsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.GetTransactionsResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="GetTransactions", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetTransactionsRequest, - output=cluster__pb2.Controller.GetTransactionsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def list_users( - self, - request: cluster__pb2.Controller.ListUsersRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.ListUsersResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="ListUsers", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListUsersRequest, - output=cluster__pb2.Controller.ListUsersResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def get_task_logs( - self, - request: cluster__pb2.Controller.GetTaskLogsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.GetTaskLogsResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="GetTaskLogs", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetTaskLogsRequest, - output=cluster__pb2.Controller.GetTaskLogsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def fetch_logs( - self, - request: cluster__pb2.FetchLogsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.FetchLogsResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="FetchLogs", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.FetchLogsRequest, - output=cluster__pb2.FetchLogsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def profile_task( - self, - request: cluster__pb2.ProfileTaskRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.ProfileTaskResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="ProfileTask", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.ProfileTaskRequest, - output=cluster__pb2.ProfileTaskResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def get_worker_status( - self, - request: cluster__pb2.Controller.GetWorkerStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.GetWorkerStatusResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="GetWorkerStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetWorkerStatusRequest, - output=cluster__pb2.Controller.GetWorkerStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def begin_checkpoint( - self, - request: cluster__pb2.Controller.BeginCheckpointRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.BeginCheckpointResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="BeginCheckpoint", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.BeginCheckpointRequest, - output=cluster__pb2.Controller.BeginCheckpointResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def get_process_status( - self, - request: cluster__pb2.GetProcessStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.GetProcessStatusResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="GetProcessStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.GetProcessStatusRequest, - output=cluster__pb2.GetProcessStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def get_auth_info( - self, - request: cluster__pb2.GetAuthInfoRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.GetAuthInfoResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="GetAuthInfo", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.GetAuthInfoRequest, - output=cluster__pb2.GetAuthInfoResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def login( - self, - request: cluster__pb2.LoginRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.LoginResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="Login", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.LoginRequest, - output=cluster__pb2.LoginResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def create_api_key( - self, - request: cluster__pb2.CreateApiKeyRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.CreateApiKeyResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="CreateApiKey", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.CreateApiKeyRequest, - output=cluster__pb2.CreateApiKeyResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def revoke_api_key( - self, - request: cluster__pb2.RevokeApiKeyRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Empty: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="RevokeApiKey", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.RevokeApiKeyRequest, - output=cluster__pb2.Empty, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def list_api_keys( - self, - request: cluster__pb2.ListApiKeysRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.ListApiKeysResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="ListApiKeys", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.ListApiKeysRequest, - output=cluster__pb2.ListApiKeysResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def get_current_user( - self, - request: cluster__pb2.GetCurrentUserRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.GetCurrentUserResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="GetCurrentUser", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.GetCurrentUserRequest, - output=cluster__pb2.GetCurrentUserResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - - -class WorkerService(Protocol): - async def get_task_status(self, request: cluster__pb2.Worker.GetTaskStatusRequest, ctx: RequestContext) -> cluster__pb2.TaskStatus: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def list_tasks(self, request: cluster__pb2.Worker.ListTasksRequest, ctx: RequestContext) -> cluster__pb2.Worker.ListTasksResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def health_check(self, request: cluster__pb2.Empty, ctx: RequestContext) -> cluster__pb2.Worker.HealthResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def fetch_logs(self, request: cluster__pb2.FetchLogsRequest, ctx: RequestContext) -> cluster__pb2.FetchLogsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def heartbeat(self, request: cluster__pb2.HeartbeatRequest, ctx: RequestContext) -> cluster__pb2.HeartbeatResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def profile_task(self, request: cluster__pb2.ProfileTaskRequest, ctx: RequestContext) -> cluster__pb2.ProfileTaskResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def get_process_status(self, request: cluster__pb2.GetProcessStatusRequest, ctx: RequestContext) -> cluster__pb2.GetProcessStatusResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - -class WorkerServiceASGIApplication(ConnectASGIApplication[WorkerService]): - def __init__(self, service: WorkerService | AsyncGenerator[WorkerService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None: - super().__init__( - service=service, - endpoints=lambda svc: { - "/iris.cluster.WorkerService/GetTaskStatus": Endpoint.unary( - method=MethodInfo( - name="GetTaskStatus", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.Worker.GetTaskStatusRequest, - output=cluster__pb2.TaskStatus, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.get_task_status, - ), - "/iris.cluster.WorkerService/ListTasks": Endpoint.unary( - method=MethodInfo( - name="ListTasks", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.Worker.ListTasksRequest, - output=cluster__pb2.Worker.ListTasksResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.list_tasks, - ), - "/iris.cluster.WorkerService/HealthCheck": Endpoint.unary( - method=MethodInfo( - name="HealthCheck", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.Empty, - output=cluster__pb2.Worker.HealthResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.health_check, - ), - "/iris.cluster.WorkerService/FetchLogs": Endpoint.unary( - method=MethodInfo( - name="FetchLogs", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.FetchLogsRequest, - output=cluster__pb2.FetchLogsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.fetch_logs, - ), - "/iris.cluster.WorkerService/Heartbeat": Endpoint.unary( - method=MethodInfo( - name="Heartbeat", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.HeartbeatRequest, - output=cluster__pb2.HeartbeatResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.heartbeat, - ), - "/iris.cluster.WorkerService/ProfileTask": Endpoint.unary( - method=MethodInfo( - name="ProfileTask", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.ProfileTaskRequest, - output=cluster__pb2.ProfileTaskResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.profile_task, - ), - "/iris.cluster.WorkerService/GetProcessStatus": Endpoint.unary( - method=MethodInfo( - name="GetProcessStatus", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.GetProcessStatusRequest, - output=cluster__pb2.GetProcessStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.get_process_status, - ), - }, - interceptors=interceptors, - read_max_bytes=read_max_bytes, - ) - - @property - def path(self) -> str: - """Returns the URL path to mount the application to when serving multiple applications.""" - return "/iris.cluster.WorkerService" - - -class WorkerServiceClient(ConnectClient): - async def get_task_status( - self, - request: cluster__pb2.Worker.GetTaskStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.TaskStatus: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="GetTaskStatus", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.Worker.GetTaskStatusRequest, - output=cluster__pb2.TaskStatus, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def list_tasks( - self, - request: cluster__pb2.Worker.ListTasksRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Worker.ListTasksResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="ListTasks", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.Worker.ListTasksRequest, - output=cluster__pb2.Worker.ListTasksResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def health_check( - self, - request: cluster__pb2.Empty, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Worker.HealthResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="HealthCheck", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.Empty, - output=cluster__pb2.Worker.HealthResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def fetch_logs( - self, - request: cluster__pb2.FetchLogsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.FetchLogsResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="FetchLogs", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.FetchLogsRequest, - output=cluster__pb2.FetchLogsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def heartbeat( - self, - request: cluster__pb2.HeartbeatRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.HeartbeatResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="Heartbeat", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.HeartbeatRequest, - output=cluster__pb2.HeartbeatResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def profile_task( - self, - request: cluster__pb2.ProfileTaskRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.ProfileTaskResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="ProfileTask", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.ProfileTaskRequest, - output=cluster__pb2.ProfileTaskResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def get_process_status( - self, - request: cluster__pb2.GetProcessStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.GetProcessStatusResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="GetProcessStatus", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.GetProcessStatusRequest, - output=cluster__pb2.GetProcessStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - -class ControllerServiceSync(Protocol): - def launch_job(self, request: cluster__pb2.Controller.LaunchJobRequest, ctx: RequestContext) -> cluster__pb2.Controller.LaunchJobResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def get_job_status(self, request: cluster__pb2.Controller.GetJobStatusRequest, ctx: RequestContext) -> cluster__pb2.Controller.GetJobStatusResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def terminate_job(self, request: cluster__pb2.Controller.TerminateJobRequest, ctx: RequestContext) -> cluster__pb2.Empty: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def list_jobs(self, request: cluster__pb2.Controller.ListJobsRequest, ctx: RequestContext) -> cluster__pb2.Controller.ListJobsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def get_task_status(self, request: cluster__pb2.Controller.GetTaskStatusRequest, ctx: RequestContext) -> cluster__pb2.Controller.GetTaskStatusResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def list_tasks(self, request: cluster__pb2.Controller.ListTasksRequest, ctx: RequestContext) -> cluster__pb2.Controller.ListTasksResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def register(self, request: cluster__pb2.Controller.RegisterRequest, ctx: RequestContext) -> cluster__pb2.Controller.RegisterResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def list_workers(self, request: cluster__pb2.Controller.ListWorkersRequest, ctx: RequestContext) -> cluster__pb2.Controller.ListWorkersResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def register_endpoint(self, request: cluster__pb2.Controller.RegisterEndpointRequest, ctx: RequestContext) -> cluster__pb2.Controller.RegisterEndpointResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def unregister_endpoint(self, request: cluster__pb2.Controller.UnregisterEndpointRequest, ctx: RequestContext) -> cluster__pb2.Empty: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def list_endpoints(self, request: cluster__pb2.Controller.ListEndpointsRequest, ctx: RequestContext) -> cluster__pb2.Controller.ListEndpointsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def get_autoscaler_status(self, request: cluster__pb2.Controller.GetAutoscalerStatusRequest, ctx: RequestContext) -> cluster__pb2.Controller.GetAutoscalerStatusResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def get_transactions(self, request: cluster__pb2.Controller.GetTransactionsRequest, ctx: RequestContext) -> cluster__pb2.Controller.GetTransactionsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def list_users(self, request: cluster__pb2.Controller.ListUsersRequest, ctx: RequestContext) -> cluster__pb2.Controller.ListUsersResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def get_task_logs(self, request: cluster__pb2.Controller.GetTaskLogsRequest, ctx: RequestContext) -> cluster__pb2.Controller.GetTaskLogsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def fetch_logs(self, request: cluster__pb2.FetchLogsRequest, ctx: RequestContext) -> cluster__pb2.FetchLogsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def profile_task(self, request: cluster__pb2.ProfileTaskRequest, ctx: RequestContext) -> cluster__pb2.ProfileTaskResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def get_worker_status(self, request: cluster__pb2.Controller.GetWorkerStatusRequest, ctx: RequestContext) -> cluster__pb2.Controller.GetWorkerStatusResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def begin_checkpoint(self, request: cluster__pb2.Controller.BeginCheckpointRequest, ctx: RequestContext) -> cluster__pb2.Controller.BeginCheckpointResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def get_process_status(self, request: cluster__pb2.GetProcessStatusRequest, ctx: RequestContext) -> cluster__pb2.GetProcessStatusResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def get_auth_info(self, request: cluster__pb2.GetAuthInfoRequest, ctx: RequestContext) -> cluster__pb2.GetAuthInfoResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def login(self, request: cluster__pb2.LoginRequest, ctx: RequestContext) -> cluster__pb2.LoginResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def create_api_key(self, request: cluster__pb2.CreateApiKeyRequest, ctx: RequestContext) -> cluster__pb2.CreateApiKeyResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def revoke_api_key(self, request: cluster__pb2.RevokeApiKeyRequest, ctx: RequestContext) -> cluster__pb2.Empty: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def list_api_keys(self, request: cluster__pb2.ListApiKeysRequest, ctx: RequestContext) -> cluster__pb2.ListApiKeysResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def get_current_user(self, request: cluster__pb2.GetCurrentUserRequest, ctx: RequestContext) -> cluster__pb2.GetCurrentUserResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - -class ControllerServiceWSGIApplication(ConnectWSGIApplication): - def __init__(self, service: ControllerServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None: - super().__init__( - endpoints={ - "/iris.cluster.ControllerService/LaunchJob": EndpointSync.unary( - method=MethodInfo( - name="LaunchJob", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.LaunchJobRequest, - output=cluster__pb2.Controller.LaunchJobResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.launch_job, - ), - "/iris.cluster.ControllerService/GetJobStatus": EndpointSync.unary( - method=MethodInfo( - name="GetJobStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetJobStatusRequest, - output=cluster__pb2.Controller.GetJobStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.get_job_status, - ), - "/iris.cluster.ControllerService/TerminateJob": EndpointSync.unary( - method=MethodInfo( - name="TerminateJob", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.TerminateJobRequest, - output=cluster__pb2.Empty, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.terminate_job, - ), - "/iris.cluster.ControllerService/ListJobs": EndpointSync.unary( - method=MethodInfo( - name="ListJobs", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListJobsRequest, - output=cluster__pb2.Controller.ListJobsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.list_jobs, - ), - "/iris.cluster.ControllerService/GetTaskStatus": EndpointSync.unary( - method=MethodInfo( - name="GetTaskStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetTaskStatusRequest, - output=cluster__pb2.Controller.GetTaskStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.get_task_status, - ), - "/iris.cluster.ControllerService/ListTasks": EndpointSync.unary( - method=MethodInfo( - name="ListTasks", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListTasksRequest, - output=cluster__pb2.Controller.ListTasksResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.list_tasks, - ), - "/iris.cluster.ControllerService/Register": EndpointSync.unary( - method=MethodInfo( - name="Register", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.RegisterRequest, - output=cluster__pb2.Controller.RegisterResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.register, - ), - "/iris.cluster.ControllerService/ListWorkers": EndpointSync.unary( - method=MethodInfo( - name="ListWorkers", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListWorkersRequest, - output=cluster__pb2.Controller.ListWorkersResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.list_workers, - ), - "/iris.cluster.ControllerService/RegisterEndpoint": EndpointSync.unary( - method=MethodInfo( - name="RegisterEndpoint", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.RegisterEndpointRequest, - output=cluster__pb2.Controller.RegisterEndpointResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.register_endpoint, - ), - "/iris.cluster.ControllerService/UnregisterEndpoint": EndpointSync.unary( - method=MethodInfo( - name="UnregisterEndpoint", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.UnregisterEndpointRequest, - output=cluster__pb2.Empty, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.unregister_endpoint, - ), - "/iris.cluster.ControllerService/ListEndpoints": EndpointSync.unary( - method=MethodInfo( - name="ListEndpoints", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListEndpointsRequest, - output=cluster__pb2.Controller.ListEndpointsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.list_endpoints, - ), - "/iris.cluster.ControllerService/GetAutoscalerStatus": EndpointSync.unary( - method=MethodInfo( - name="GetAutoscalerStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetAutoscalerStatusRequest, - output=cluster__pb2.Controller.GetAutoscalerStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.get_autoscaler_status, - ), - "/iris.cluster.ControllerService/GetTransactions": EndpointSync.unary( - method=MethodInfo( - name="GetTransactions", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetTransactionsRequest, - output=cluster__pb2.Controller.GetTransactionsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.get_transactions, - ), - "/iris.cluster.ControllerService/ListUsers": EndpointSync.unary( - method=MethodInfo( - name="ListUsers", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListUsersRequest, - output=cluster__pb2.Controller.ListUsersResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.list_users, - ), - "/iris.cluster.ControllerService/GetTaskLogs": EndpointSync.unary( - method=MethodInfo( - name="GetTaskLogs", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetTaskLogsRequest, - output=cluster__pb2.Controller.GetTaskLogsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.get_task_logs, - ), - "/iris.cluster.ControllerService/FetchLogs": EndpointSync.unary( - method=MethodInfo( - name="FetchLogs", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.FetchLogsRequest, - output=cluster__pb2.FetchLogsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.fetch_logs, - ), - "/iris.cluster.ControllerService/ProfileTask": EndpointSync.unary( - method=MethodInfo( - name="ProfileTask", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.ProfileTaskRequest, - output=cluster__pb2.ProfileTaskResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.profile_task, - ), - "/iris.cluster.ControllerService/GetWorkerStatus": EndpointSync.unary( - method=MethodInfo( - name="GetWorkerStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetWorkerStatusRequest, - output=cluster__pb2.Controller.GetWorkerStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.get_worker_status, - ), - "/iris.cluster.ControllerService/BeginCheckpoint": EndpointSync.unary( - method=MethodInfo( - name="BeginCheckpoint", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.BeginCheckpointRequest, - output=cluster__pb2.Controller.BeginCheckpointResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.begin_checkpoint, - ), - "/iris.cluster.ControllerService/GetProcessStatus": EndpointSync.unary( - method=MethodInfo( - name="GetProcessStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.GetProcessStatusRequest, - output=cluster__pb2.GetProcessStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.get_process_status, - ), - "/iris.cluster.ControllerService/GetAuthInfo": EndpointSync.unary( - method=MethodInfo( - name="GetAuthInfo", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.GetAuthInfoRequest, - output=cluster__pb2.GetAuthInfoResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.get_auth_info, - ), - "/iris.cluster.ControllerService/Login": EndpointSync.unary( - method=MethodInfo( - name="Login", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.LoginRequest, - output=cluster__pb2.LoginResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.login, - ), - "/iris.cluster.ControllerService/CreateApiKey": EndpointSync.unary( - method=MethodInfo( - name="CreateApiKey", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.CreateApiKeyRequest, - output=cluster__pb2.CreateApiKeyResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.create_api_key, - ), - "/iris.cluster.ControllerService/RevokeApiKey": EndpointSync.unary( - method=MethodInfo( - name="RevokeApiKey", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.RevokeApiKeyRequest, - output=cluster__pb2.Empty, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.revoke_api_key, - ), - "/iris.cluster.ControllerService/ListApiKeys": EndpointSync.unary( - method=MethodInfo( - name="ListApiKeys", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.ListApiKeysRequest, - output=cluster__pb2.ListApiKeysResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.list_api_keys, - ), - "/iris.cluster.ControllerService/GetCurrentUser": EndpointSync.unary( - method=MethodInfo( - name="GetCurrentUser", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.GetCurrentUserRequest, - output=cluster__pb2.GetCurrentUserResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.get_current_user, - ), - }, - interceptors=interceptors, - read_max_bytes=read_max_bytes, - ) - - @property - def path(self) -> str: - """Returns the URL path to mount the application to when serving multiple applications.""" - return "/iris.cluster.ControllerService" - - -class ControllerServiceClientSync(ConnectClientSync): - def launch_job( - self, - request: cluster__pb2.Controller.LaunchJobRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.LaunchJobResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="LaunchJob", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.LaunchJobRequest, - output=cluster__pb2.Controller.LaunchJobResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def get_job_status( - self, - request: cluster__pb2.Controller.GetJobStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.GetJobStatusResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="GetJobStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetJobStatusRequest, - output=cluster__pb2.Controller.GetJobStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def terminate_job( - self, - request: cluster__pb2.Controller.TerminateJobRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Empty: - return self.execute_unary( - request=request, - method=MethodInfo( - name="TerminateJob", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.TerminateJobRequest, - output=cluster__pb2.Empty, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def list_jobs( - self, - request: cluster__pb2.Controller.ListJobsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.ListJobsResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="ListJobs", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListJobsRequest, - output=cluster__pb2.Controller.ListJobsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def get_task_status( - self, - request: cluster__pb2.Controller.GetTaskStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.GetTaskStatusResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="GetTaskStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetTaskStatusRequest, - output=cluster__pb2.Controller.GetTaskStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def list_tasks( - self, - request: cluster__pb2.Controller.ListTasksRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.ListTasksResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="ListTasks", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListTasksRequest, - output=cluster__pb2.Controller.ListTasksResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def register( - self, - request: cluster__pb2.Controller.RegisterRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.RegisterResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="Register", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.RegisterRequest, - output=cluster__pb2.Controller.RegisterResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def list_workers( - self, - request: cluster__pb2.Controller.ListWorkersRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.ListWorkersResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="ListWorkers", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListWorkersRequest, - output=cluster__pb2.Controller.ListWorkersResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def register_endpoint( - self, - request: cluster__pb2.Controller.RegisterEndpointRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.RegisterEndpointResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="RegisterEndpoint", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.RegisterEndpointRequest, - output=cluster__pb2.Controller.RegisterEndpointResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def unregister_endpoint( - self, - request: cluster__pb2.Controller.UnregisterEndpointRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Empty: - return self.execute_unary( - request=request, - method=MethodInfo( - name="UnregisterEndpoint", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.UnregisterEndpointRequest, - output=cluster__pb2.Empty, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def list_endpoints( - self, - request: cluster__pb2.Controller.ListEndpointsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.ListEndpointsResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="ListEndpoints", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListEndpointsRequest, - output=cluster__pb2.Controller.ListEndpointsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def get_autoscaler_status( - self, - request: cluster__pb2.Controller.GetAutoscalerStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.GetAutoscalerStatusResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="GetAutoscalerStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetAutoscalerStatusRequest, - output=cluster__pb2.Controller.GetAutoscalerStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def get_transactions( - self, - request: cluster__pb2.Controller.GetTransactionsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.GetTransactionsResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="GetTransactions", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetTransactionsRequest, - output=cluster__pb2.Controller.GetTransactionsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def list_users( - self, - request: cluster__pb2.Controller.ListUsersRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.ListUsersResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="ListUsers", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.ListUsersRequest, - output=cluster__pb2.Controller.ListUsersResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def get_task_logs( - self, - request: cluster__pb2.Controller.GetTaskLogsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.GetTaskLogsResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="GetTaskLogs", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetTaskLogsRequest, - output=cluster__pb2.Controller.GetTaskLogsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def fetch_logs( - self, - request: cluster__pb2.FetchLogsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.FetchLogsResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="FetchLogs", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.FetchLogsRequest, - output=cluster__pb2.FetchLogsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def profile_task( - self, - request: cluster__pb2.ProfileTaskRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.ProfileTaskResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="ProfileTask", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.ProfileTaskRequest, - output=cluster__pb2.ProfileTaskResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def get_worker_status( - self, - request: cluster__pb2.Controller.GetWorkerStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.GetWorkerStatusResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="GetWorkerStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.GetWorkerStatusRequest, - output=cluster__pb2.Controller.GetWorkerStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def begin_checkpoint( - self, - request: cluster__pb2.Controller.BeginCheckpointRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Controller.BeginCheckpointResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="BeginCheckpoint", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.Controller.BeginCheckpointRequest, - output=cluster__pb2.Controller.BeginCheckpointResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def get_process_status( - self, - request: cluster__pb2.GetProcessStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.GetProcessStatusResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="GetProcessStatus", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.GetProcessStatusRequest, - output=cluster__pb2.GetProcessStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def get_auth_info( - self, - request: cluster__pb2.GetAuthInfoRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.GetAuthInfoResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="GetAuthInfo", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.GetAuthInfoRequest, - output=cluster__pb2.GetAuthInfoResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def login( - self, - request: cluster__pb2.LoginRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.LoginResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="Login", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.LoginRequest, - output=cluster__pb2.LoginResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def create_api_key( - self, - request: cluster__pb2.CreateApiKeyRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.CreateApiKeyResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="CreateApiKey", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.CreateApiKeyRequest, - output=cluster__pb2.CreateApiKeyResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def revoke_api_key( - self, - request: cluster__pb2.RevokeApiKeyRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Empty: - return self.execute_unary( - request=request, - method=MethodInfo( - name="RevokeApiKey", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.RevokeApiKeyRequest, - output=cluster__pb2.Empty, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def list_api_keys( - self, - request: cluster__pb2.ListApiKeysRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.ListApiKeysResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="ListApiKeys", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.ListApiKeysRequest, - output=cluster__pb2.ListApiKeysResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def get_current_user( - self, - request: cluster__pb2.GetCurrentUserRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.GetCurrentUserResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="GetCurrentUser", - service_name="iris.cluster.ControllerService", - input=cluster__pb2.GetCurrentUserRequest, - output=cluster__pb2.GetCurrentUserResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - -class WorkerServiceSync(Protocol): - def get_task_status(self, request: cluster__pb2.Worker.GetTaskStatusRequest, ctx: RequestContext) -> cluster__pb2.TaskStatus: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def list_tasks(self, request: cluster__pb2.Worker.ListTasksRequest, ctx: RequestContext) -> cluster__pb2.Worker.ListTasksResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def health_check(self, request: cluster__pb2.Empty, ctx: RequestContext) -> cluster__pb2.Worker.HealthResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def fetch_logs(self, request: cluster__pb2.FetchLogsRequest, ctx: RequestContext) -> cluster__pb2.FetchLogsResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def heartbeat(self, request: cluster__pb2.HeartbeatRequest, ctx: RequestContext) -> cluster__pb2.HeartbeatResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def profile_task(self, request: cluster__pb2.ProfileTaskRequest, ctx: RequestContext) -> cluster__pb2.ProfileTaskResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def get_process_status(self, request: cluster__pb2.GetProcessStatusRequest, ctx: RequestContext) -> cluster__pb2.GetProcessStatusResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - -class WorkerServiceWSGIApplication(ConnectWSGIApplication): - def __init__(self, service: WorkerServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None: - super().__init__( - endpoints={ - "/iris.cluster.WorkerService/GetTaskStatus": EndpointSync.unary( - method=MethodInfo( - name="GetTaskStatus", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.Worker.GetTaskStatusRequest, - output=cluster__pb2.TaskStatus, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.get_task_status, - ), - "/iris.cluster.WorkerService/ListTasks": EndpointSync.unary( - method=MethodInfo( - name="ListTasks", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.Worker.ListTasksRequest, - output=cluster__pb2.Worker.ListTasksResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.list_tasks, - ), - "/iris.cluster.WorkerService/HealthCheck": EndpointSync.unary( - method=MethodInfo( - name="HealthCheck", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.Empty, - output=cluster__pb2.Worker.HealthResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.health_check, - ), - "/iris.cluster.WorkerService/FetchLogs": EndpointSync.unary( - method=MethodInfo( - name="FetchLogs", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.FetchLogsRequest, - output=cluster__pb2.FetchLogsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.fetch_logs, - ), - "/iris.cluster.WorkerService/Heartbeat": EndpointSync.unary( - method=MethodInfo( - name="Heartbeat", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.HeartbeatRequest, - output=cluster__pb2.HeartbeatResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.heartbeat, - ), - "/iris.cluster.WorkerService/ProfileTask": EndpointSync.unary( - method=MethodInfo( - name="ProfileTask", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.ProfileTaskRequest, - output=cluster__pb2.ProfileTaskResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.profile_task, - ), - "/iris.cluster.WorkerService/GetProcessStatus": EndpointSync.unary( - method=MethodInfo( - name="GetProcessStatus", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.GetProcessStatusRequest, - output=cluster__pb2.GetProcessStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.get_process_status, - ), - }, - interceptors=interceptors, - read_max_bytes=read_max_bytes, - ) - - @property - def path(self) -> str: - """Returns the URL path to mount the application to when serving multiple applications.""" - return "/iris.cluster.WorkerService" - - -class WorkerServiceClientSync(ConnectClientSync): - def get_task_status( - self, - request: cluster__pb2.Worker.GetTaskStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.TaskStatus: - return self.execute_unary( - request=request, - method=MethodInfo( - name="GetTaskStatus", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.Worker.GetTaskStatusRequest, - output=cluster__pb2.TaskStatus, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def list_tasks( - self, - request: cluster__pb2.Worker.ListTasksRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Worker.ListTasksResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="ListTasks", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.Worker.ListTasksRequest, - output=cluster__pb2.Worker.ListTasksResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def health_check( - self, - request: cluster__pb2.Empty, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.Worker.HealthResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="HealthCheck", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.Empty, - output=cluster__pb2.Worker.HealthResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def fetch_logs( - self, - request: cluster__pb2.FetchLogsRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.FetchLogsResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="FetchLogs", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.FetchLogsRequest, - output=cluster__pb2.FetchLogsResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def heartbeat( - self, - request: cluster__pb2.HeartbeatRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.HeartbeatResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="Heartbeat", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.HeartbeatRequest, - output=cluster__pb2.HeartbeatResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def profile_task( - self, - request: cluster__pb2.ProfileTaskRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.ProfileTaskResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="ProfileTask", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.ProfileTaskRequest, - output=cluster__pb2.ProfileTaskResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def get_process_status( - self, - request: cluster__pb2.GetProcessStatusRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> cluster__pb2.GetProcessStatusResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="GetProcessStatus", - service_name="iris.cluster.WorkerService", - input=cluster__pb2.GetProcessStatusRequest, - output=cluster__pb2.GetProcessStatusResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) diff --git a/lib/iris/src/iris/rpc/cluster_pb2.py b/lib/iris/src/iris/rpc/cluster_pb2.py deleted file mode 100644 index dbfe1ec05a..0000000000 --- a/lib/iris/src/iris/rpc/cluster_pb2.py +++ /dev/null @@ -1,282 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: cluster.proto -# Protobuf Python Version: 6.33.4 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 33, - 4, - '', - 'cluster.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from . import time_pb2 as time__pb2 -from . import vm_pb2 as vm__pb2 -from . import logging_pb2 as logging__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rcluster.proto\x12\x0ciris.cluster\x1a\ntime.proto\x1a\x08vm.proto\x1a\rlogging.proto\"\x07\n\x05\x45mpty\"5\n\x0cLoginRequest\x12%\n\x0eidentity_token\x18\x01 \x01(\tR\ridentityToken\"U\n\rLoginResponse\x12\x14\n\x05token\x18\x01 \x01(\tR\x05token\x12\x15\n\x06key_id\x18\x02 \x01(\tR\x05keyId\x12\x17\n\x07user_id\x18\x03 \x01(\tR\x06userId\"\x14\n\x12GetAuthInfoRequest\"W\n\x13GetAuthInfoResponse\x12\x1a\n\x08provider\x18\x01 \x01(\tR\x08provider\x12$\n\x0egcp_project_id\x18\x02 \x01(\tR\x0cgcpProjectId\"Y\n\x13\x43reateApiKeyRequest\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x15\n\x06ttl_ms\x18\x03 \x01(\x03R\x05ttlMs\"b\n\x14\x43reateApiKeyResponse\x12\x15\n\x06key_id\x18\x01 \x01(\tR\x05keyId\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x1d\n\nkey_prefix\x18\x03 \x01(\tR\tkeyPrefix\",\n\x13RevokeApiKeyRequest\x12\x15\n\x06key_id\x18\x01 \x01(\tR\x05keyId\"-\n\x12ListApiKeysRequest\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId\"\xf8\x01\n\nApiKeyInfo\x12\x15\n\x06key_id\x18\x01 \x01(\tR\x05keyId\x12\x1d\n\nkey_prefix\x18\x02 \x01(\tR\tkeyPrefix\x12\x17\n\x07user_id\x18\x03 \x01(\tR\x06userId\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\"\n\rcreated_at_ms\x18\x05 \x01(\x03R\x0b\x63reatedAtMs\x12%\n\x0flast_used_at_ms\x18\x06 \x01(\x03R\x0clastUsedAtMs\x12\"\n\rexpires_at_ms\x18\x07 \x01(\x03R\x0b\x65xpiresAtMs\x12\x18\n\x07revoked\x18\x08 \x01(\x08R\x07revoked\"C\n\x13ListApiKeysResponse\x12,\n\x04keys\x18\x01 \x03(\x0b\x32\x18.iris.cluster.ApiKeyInfoR\x04keys\"\x17\n\x15GetCurrentUserRequest\"h\n\x16GetCurrentUserResponse\x12\x17\n\x07user_id\x18\x01 \x01(\tR\x06userId\x12\x12\n\x04role\x18\x02 \x01(\tR\x04role\x12!\n\x0c\x64isplay_name\x18\x03 \x01(\tR\x0b\x64isplayName\"\xa9\x01\n\nCpuProfile\x12\x37\n\x06\x66ormat\x18\x01 \x01(\x0e\x32\x1f.iris.cluster.CpuProfile.FormatR\x06\x66ormat\x12\x17\n\x07rate_hz\x18\x02 \x01(\x05R\x06rateHz\"I\n\x06\x46ormat\x12\x16\n\x12\x46ORMAT_UNSPECIFIED\x10\x00\x12\x0e\n\nFLAMEGRAPH\x10\x01\x12\x0e\n\nSPEEDSCOPE\x10\x02\x12\x07\n\x03RAW\x10\x03\"\xa9\x01\n\rMemoryProfile\x12:\n\x06\x66ormat\x18\x01 \x01(\x0e\x32\".iris.cluster.MemoryProfile.FormatR\x06\x66ormat\x12\x14\n\x05leaks\x18\x02 \x01(\x08R\x05leaks\"F\n\x06\x46ormat\x12\x16\n\x12\x46ORMAT_UNSPECIFIED\x10\x00\x12\x0e\n\nFLAMEGRAPH\x10\x01\x12\t\n\x05TABLE\x10\x02\x12\t\n\x05STATS\x10\x03\"\x10\n\x0eThreadsProfile\"\xb8\x01\n\x0bProfileType\x12,\n\x03\x63pu\x18\x01 \x01(\x0b\x32\x18.iris.cluster.CpuProfileH\x00R\x03\x63pu\x12\x35\n\x06memory\x18\x02 \x01(\x0b\x32\x1b.iris.cluster.MemoryProfileH\x00R\x06memory\x12\x38\n\x07threads\x18\x03 \x01(\x0b\x32\x1c.iris.cluster.ThreadsProfileH\x00R\x07threadsB\n\n\x08profiler\"\x9b\x01\n\x12ProfileTaskRequest\x12\x16\n\x06target\x18\x04 \x01(\tR\x06target\x12)\n\x10\x64uration_seconds\x18\x02 \x01(\x05R\x0f\x64urationSeconds\x12<\n\x0cprofile_type\x18\x03 \x01(\x0b\x32\x19.iris.cluster.ProfileTypeR\x0bprofileTypeJ\x04\x08\x01\x10\x02\"N\n\x13ProfileTaskResponse\x12!\n\x0cprofile_data\x18\x01 \x01(\x0cR\x0bprofileData\x12\x14\n\x05\x65rror\x18\x02 \x01(\tR\x05\x65rror\"\xc9\x01\n\x10\x46\x65tchLogsRequest\x12\x16\n\x06source\x18\x01 \x01(\tR\x06source\x12\x19\n\x08since_ms\x18\x02 \x01(\x03R\x07sinceMs\x12\x16\n\x06\x63ursor\x18\x03 \x01(\x03R\x06\x63ursor\x12\x1c\n\tsubstring\x18\x04 \x01(\tR\tsubstring\x12\x1b\n\tmax_lines\x18\x05 \x01(\x05R\x08maxLines\x12\x12\n\x04tail\x18\x06 \x01(\x08R\x04tail\x12\x1b\n\tmin_level\x18\x07 \x01(\tR\x08minLevel\"]\n\x11\x46\x65tchLogsResponse\x12\x30\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x16.iris.logging.LogEntryR\x07\x65ntries\x12\x16\n\x06\x63ursor\x18\x02 \x01(\x03R\x06\x63ursor\"\xa1\x03\n\x0bProcessInfo\x12\x1a\n\x08hostname\x18\x01 \x01(\tR\x08hostname\x12\x10\n\x03pid\x18\x02 \x01(\x05R\x03pid\x12%\n\x0epython_version\x18\x03 \x01(\tR\rpythonVersion\x12\x1b\n\tuptime_ms\x18\x04 \x01(\x03R\x08uptimeMs\x12(\n\x10memory_rss_bytes\x18\x05 \x01(\x03R\x0ememoryRssBytes\x12(\n\x10memory_vms_bytes\x18\x06 \x01(\x03R\x0ememoryVmsBytes\x12\x1f\n\x0b\x63pu_percent\x18\x07 \x01(\x02R\ncpuPercent\x12!\n\x0cthread_count\x18\x08 \x01(\x05R\x0bthreadCount\x12\"\n\ropen_fd_count\x18\t \x01(\x05R\x0bopenFdCount\x12,\n\x12memory_total_bytes\x18\n \x01(\x03R\x10memoryTotalBytes\x12\x1b\n\tcpu_count\x18\x0b \x01(\x05R\x08\x63puCount\x12\x19\n\x08git_hash\x18\x0c \x01(\tR\x07gitHash\"\x9e\x01\n\x17GetProcessStatusRequest\x12\"\n\rmax_log_lines\x18\x01 \x01(\x05R\x0bmaxLogLines\x12#\n\rlog_substring\x18\x02 \x01(\tR\x0clogSubstring\x12\"\n\rmin_log_level\x18\x03 \x01(\tR\x0bminLogLevel\x12\x16\n\x06target\x18\x04 \x01(\tR\x06target\"\x91\x01\n\x18GetProcessStatusResponse\x12<\n\x0cprocess_info\x18\x01 \x01(\x0b\x32\x19.iris.cluster.ProcessInfoR\x0bprocessInfo\x12\x37\n\x0blog_entries\x18\x02 \x03(\x0b\x32\x16.iris.logging.LogEntryR\nlogEntries\"\xe7\x05\n\nTaskStatus\x12\x17\n\x07task_id\x18\x01 \x01(\tR\x06taskId\x12-\n\x05state\x18\x04 \x01(\x0e\x32\x17.iris.cluster.TaskStateR\x05state\x12\x1b\n\tworker_id\x18\x05 \x01(\tR\x08workerId\x12%\n\x0eworker_address\x18\x06 \x01(\tR\rworkerAddress\x12\x1b\n\texit_code\x18\x07 \x01(\x05R\x08\x65xitCode\x12\x14\n\x05\x65rror\x18\x08 \x01(\tR\x05\x65rror\x12\x33\n\nstarted_at\x18\t \x01(\x0b\x32\x14.iris.time.TimestampR\tstartedAt\x12\x35\n\x0b\x66inished_at\x18\n \x01(\x0b\x32\x14.iris.time.TimestampR\nfinishedAt\x12\x39\n\x05ports\x18\x0b \x03(\x0b\x32#.iris.cluster.TaskStatus.PortsEntryR\x05ports\x12\x42\n\x0eresource_usage\x18\x0c \x01(\x0b\x32\x1b.iris.cluster.ResourceUsageR\rresourceUsage\x12?\n\rbuild_metrics\x18\r \x01(\x0b\x32\x1a.iris.cluster.BuildMetricsR\x0c\x62uildMetrics\x12,\n\x12\x63urrent_attempt_id\x18\x0e \x01(\x05R\x10\x63urrentAttemptId\x12\x35\n\x08\x61ttempts\x18\x0f \x03(\x0b\x32\x19.iris.cluster.TaskAttemptR\x08\x61ttempts\x12%\n\x0epending_reason\x18\x10 \x01(\tR\rpendingReason\x12(\n\x10\x63\x61n_be_scheduled\x18\x11 \x01(\x08R\x0e\x63\x61nBeScheduled\x1a\x38\n\nPortsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x05R\x05value:\x02\x38\x01\"\xc3\x02\n\x0bTaskAttempt\x12\x1d\n\nattempt_id\x18\x01 \x01(\x05R\tattemptId\x12\x1b\n\tworker_id\x18\x02 \x01(\tR\x08workerId\x12-\n\x05state\x18\x03 \x01(\x0e\x32\x17.iris.cluster.TaskStateR\x05state\x12\x1b\n\texit_code\x18\x04 \x01(\x05R\x08\x65xitCode\x12\x14\n\x05\x65rror\x18\x05 \x01(\tR\x05\x65rror\x12\x33\n\nstarted_at\x18\x06 \x01(\x0b\x32\x14.iris.time.TimestampR\tstartedAt\x12\x35\n\x0b\x66inished_at\x18\x07 \x01(\x0b\x32\x14.iris.time.TimestampR\nfinishedAt\x12*\n\x11is_worker_failure\x18\x08 \x01(\x08R\x0fisWorkerFailure\"\xd8\x01\n\rResourceUsage\x12\x1b\n\tmemory_mb\x18\x01 \x01(\x03R\x08memoryMb\x12\x17\n\x07\x64isk_mb\x18\x02 \x01(\x03R\x06\x64iskMb\x12%\n\x0e\x63pu_millicores\x18\x03 \x01(\x05R\rcpuMillicores\x12$\n\x0ememory_peak_mb\x18\x04 \x01(\x03R\x0cmemoryPeakMb\x12\x1f\n\x0b\x63pu_percent\x18\x05 \x01(\x05R\ncpuPercent\x12#\n\rprocess_count\x18\x06 \x01(\x05R\x0cprocessCount\"\xbb\x03\n\x16WorkerResourceSnapshot\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x14.iris.time.TimestampR\ttimestamp\x12\x1f\n\x0b\x63pu_percent\x18\x02 \x01(\x05R\ncpuPercent\x12*\n\x11memory_used_bytes\x18\x03 \x01(\x03R\x0fmemoryUsedBytes\x12,\n\x12memory_total_bytes\x18\x04 \x01(\x03R\x10memoryTotalBytes\x12&\n\x0f\x64isk_used_bytes\x18\x05 \x01(\x03R\rdiskUsedBytes\x12(\n\x10\x64isk_total_bytes\x18\x06 \x01(\x03R\x0e\x64iskTotalBytes\x12,\n\x12running_task_count\x18\x07 \x01(\x05R\x10runningTaskCount\x12.\n\x13total_process_count\x18\x08 \x01(\x05R\x11totalProcessCount\x12 \n\x0cnet_recv_bps\x18\t \x01(\x03R\nnetRecvBps\x12 \n\x0cnet_sent_bps\x18\n \x01(\x03R\nnetSentBps\"\xc2\x01\n\x0c\x42uildMetrics\x12\x39\n\rbuild_started\x18\x01 \x01(\x0b\x32\x14.iris.time.TimestampR\x0c\x62uildStarted\x12;\n\x0e\x62uild_finished\x18\x02 \x01(\x0b\x32\x14.iris.time.TimestampR\rbuildFinished\x12\x1d\n\nfrom_cache\x18\x03 \x01(\x08R\tfromCache\x12\x1b\n\timage_tag\x18\x04 \x01(\tR\x08imageTag\"\xae\x08\n\tJobStatus\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x16.iris.cluster.JobStateR\x05state\x12\x1b\n\texit_code\x18\x03 \x01(\x05R\x08\x65xitCode\x12\x14\n\x05\x65rror\x18\x04 \x01(\tR\x05\x65rror\x12\x33\n\nstarted_at\x18\x05 \x01(\x0b\x32\x14.iris.time.TimestampR\tstartedAt\x12\x35\n\x0b\x66inished_at\x18\x06 \x01(\x0b\x32\x14.iris.time.TimestampR\nfinishedAt\x12\x38\n\x05ports\x18\x07 \x03(\x0b\x32\".iris.cluster.JobStatus.PortsEntryR\x05ports\x12\x42\n\x0eresource_usage\x18\x08 \x01(\x0b\x32\x1b.iris.cluster.ResourceUsageR\rresourceUsage\x12%\n\x0estatus_message\x18\t \x01(\tR\rstatusMessage\x12?\n\rbuild_metrics\x18\n \x01(\x0b\x32\x1a.iris.cluster.BuildMetricsR\x0c\x62uildMetrics\x12#\n\rfailure_count\x18\x11 \x01(\x05R\x0c\x66\x61ilureCount\x12)\n\x10preemption_count\x18\x12 \x01(\x05R\x0fpreemptionCount\x12.\n\x05tasks\x18\x18 \x03(\x0b\x32\x18.iris.cluster.TaskStatusR\x05tasks\x12\x12\n\x04name\x18\x19 \x01(\tR\x04name\x12\x37\n\x0csubmitted_at\x18\x1a \x01(\x0b\x32\x14.iris.time.TimestampR\x0bsubmittedAt\x12=\n\tresources\x18\x1b \x01(\x0b\x32\x1f.iris.cluster.ResourceSpecProtoR\tresources\x12X\n\x11task_state_counts\x18\x1c \x03(\x0b\x32,.iris.cluster.JobStatus.TaskStateCountsEntryR\x0ftaskStateCounts\x12\x1d\n\ntask_count\x18\x1d \x01(\x05R\ttaskCount\x12\'\n\x0f\x63ompleted_count\x18\x1e \x01(\x05R\x0e\x63ompletedCount\x12%\n\x0epending_reason\x18\x1f \x01(\tR\rpendingReason\x1a\x38\n\nPortsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x05R\x05value:\x02\x38\x01\x1a\x42\n\x14TaskStateCountsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x05R\x05value:\x02\x38\x01J\x04\x08\r\x10\x0e\"\x8d\x01\n\x10ReservationEntry\x12=\n\tresources\x18\x01 \x01(\x0b\x32\x1f.iris.cluster.ResourceSpecProtoR\tresources\x12:\n\x0b\x63onstraints\x18\x02 \x03(\x0b\x32\x18.iris.cluster.ConstraintR\x0b\x63onstraints\"M\n\x11ReservationConfig\x12\x38\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1e.iris.cluster.ReservationEntryR\x07\x65ntries\"\x9f\x01\n\x0c\x44\x65viceConfig\x12+\n\x03\x63pu\x18\x01 \x01(\x0b\x32\x17.iris.cluster.CpuDeviceH\x00R\x03\x63pu\x12+\n\x03gpu\x18\x02 \x01(\x0b\x32\x17.iris.cluster.GpuDeviceH\x00R\x03gpu\x12+\n\x03tpu\x18\x03 \x01(\x0b\x32\x17.iris.cluster.TpuDeviceH\x00R\x03tpuB\x08\n\x06\x64\x65vice\"%\n\tCpuDevice\x12\x18\n\x07variant\x18\x01 \x01(\tR\x07variant\";\n\tGpuDevice\x12\x18\n\x07variant\x18\x01 \x01(\tR\x07variant\x12\x14\n\x05\x63ount\x18\x02 \x01(\x05R\x05\x63ount\"W\n\tTpuDevice\x12\x18\n\x07variant\x18\x01 \x01(\tR\x07variant\x12\x1a\n\x08topology\x18\x02 \x01(\tR\x08topology\x12\x14\n\x05\x63ount\x18\x03 \x01(\x05R\x05\x63ount\"\xb0\x01\n\x11ResourceSpecProto\x12%\n\x0e\x63pu_millicores\x18\x01 \x01(\x05R\rcpuMillicores\x12!\n\x0cmemory_bytes\x18\x04 \x01(\x03R\x0bmemoryBytes\x12\x1d\n\ndisk_bytes\x18\t \x01(\x03R\tdiskBytes\x12\x32\n\x06\x64\x65vice\x18\x05 \x01(\x0b\x32\x1a.iris.cluster.DeviceConfigR\x06\x64\x65vice\"\x9a\x02\n\x11\x45nvironmentConfig\x12!\n\x0cpip_packages\x18\x01 \x03(\tR\x0bpipPackages\x12G\n\x08\x65nv_vars\x18\x02 \x03(\x0b\x32,.iris.cluster.EnvironmentConfig.EnvVarsEntryR\x07\x65nvVars\x12\x16\n\x06\x65xtras\x18\x03 \x03(\tR\x06\x65xtras\x12%\n\x0epython_version\x18\x04 \x01(\tR\rpythonVersion\x12\x1e\n\ndockerfile\x18\x05 \x01(\tR\ndockerfile\x1a:\n\x0c\x45nvVarsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\'\n\x11\x43ommandEntrypoint\x12\x12\n\x04\x61rgv\x18\x01 \x03(\tR\x04\x61rgv\"\x95\x02\n\x11RuntimeEntrypoint\x12%\n\x0esetup_commands\x18\x01 \x03(\tR\rsetupCommands\x12@\n\x0brun_command\x18\x02 \x01(\x0b\x32\x1f.iris.cluster.CommandEntrypointR\nrunCommand\x12V\n\rworkdir_files\x18\x03 \x03(\x0b\x32\x31.iris.cluster.RuntimeEntrypoint.WorkdirFilesEntryR\x0cworkdirFiles\x1a?\n\x11WorkdirFilesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x0cR\x05value:\x02\x38\x01\"\x80\x01\n\x0e\x41ttributeValue\x12#\n\x0cstring_value\x18\x01 \x01(\tH\x00R\x0bstringValue\x12\x1d\n\tint_value\x18\x02 \x01(\x03H\x00R\x08intValue\x12!\n\x0b\x66loat_value\x18\x03 \x01(\x01H\x00R\nfloatValueB\x07\n\x05value\"\xb4\x01\n\nConstraint\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12*\n\x02op\x18\x02 \x01(\x0e\x32\x1a.iris.cluster.ConstraintOpR\x02op\x12\x32\n\x05value\x18\x03 \x01(\x0b\x32\x1c.iris.cluster.AttributeValueR\x05value\x12\x34\n\x06values\x18\x04 \x03(\x0b\x32\x1c.iris.cluster.AttributeValueR\x06values\"/\n\x12\x43oschedulingConfig\x12\x19\n\x08group_by\x18\x01 \x01(\tR\x07groupBy\"\x91\x06\n\x0eWorkerMetadata\x12\x1a\n\x08hostname\x18\x01 \x01(\tR\x08hostname\x12\x1d\n\nip_address\x18\x02 \x01(\tR\tipAddress\x12\x1b\n\tcpu_count\x18\x03 \x01(\x05R\x08\x63puCount\x12!\n\x0cmemory_bytes\x18\x04 \x01(\x03R\x0bmemoryBytes\x12\x1d\n\ndisk_bytes\x18\x05 \x01(\x03R\tdiskBytes\x12\x32\n\x06\x64\x65vice\x18\x06 \x01(\x0b\x32\x1a.iris.cluster.DeviceConfigR\x06\x64\x65vice\x12\x19\n\x08tpu_name\x18\n \x01(\tR\x07tpuName\x12\x30\n\x14tpu_worker_hostnames\x18\x0b \x01(\tR\x12tpuWorkerHostnames\x12\"\n\rtpu_worker_id\x18\x0c \x01(\tR\x0btpuWorkerId\x12\x38\n\x19tpu_chips_per_host_bounds\x18\r \x01(\tR\x15tpuChipsPerHostBounds\x12\x1b\n\tgpu_count\x18\x14 \x01(\x05R\x08gpuCount\x12\x19\n\x08gpu_name\x18\x15 \x01(\tR\x07gpuName\x12\"\n\rgpu_memory_mb\x18\x16 \x01(\x05R\x0bgpuMemoryMb\x12*\n\x11gce_instance_name\x18\x1e \x01(\tR\x0fgceInstanceName\x12\x19\n\x08gce_zone\x18\x1f \x01(\tR\x07gceZone\x12L\n\nattributes\x18( \x03(\x0b\x32,.iris.cluster.WorkerMetadata.AttributesEntryR\nattributes\x12\x1d\n\nvm_address\x18) \x01(\tR\tvmAddress\x12\x19\n\x08git_hash\x18* \x01(\tR\x07gitHash\x1a[\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x32\n\x05value\x18\x02 \x01(\x0b\x32\x1c.iris.cluster.AttributeValueR\x05value:\x02\x38\x01\"\xac\x32\n\nController\x1a\xc9\x06\n\x10LaunchJobRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12?\n\nentrypoint\x18\x02 \x01(\x0b\x32\x1f.iris.cluster.RuntimeEntrypointR\nentrypoint\x12=\n\tresources\x18\x03 \x01(\x0b\x32\x1f.iris.cluster.ResourceSpecProtoR\tresources\x12\x41\n\x0b\x65nvironment\x18\x04 \x01(\x0b\x32\x1f.iris.cluster.EnvironmentConfigR\x0b\x65nvironment\x12\x1b\n\tbundle_id\x18\x05 \x01(\tR\x08\x62undleId\x12\x1f\n\x0b\x62undle_blob\x18\x06 \x01(\x0cR\nbundleBlob\x12\x42\n\x12scheduling_timeout\x18\x08 \x01(\x0b\x32\x13.iris.time.DurationR\x11schedulingTimeout\x12\x14\n\x05ports\x18\t \x03(\tR\x05ports\x12*\n\x11max_task_failures\x18\x0b \x01(\x05R\x0fmaxTaskFailures\x12.\n\x13max_retries_failure\x18\x0c \x01(\x05R\x11maxRetriesFailure\x12\x34\n\x16max_retries_preemption\x18\r \x01(\x05R\x14maxRetriesPreemption\x12:\n\x0b\x63onstraints\x18\x0e \x03(\x0b\x32\x18.iris.cluster.ConstraintR\x0b\x63onstraints\x12\x44\n\x0c\x63oscheduling\x18\x0f \x01(\x0b\x32 .iris.cluster.CoschedulingConfigR\x0c\x63oscheduling\x12\x1a\n\x08replicas\x18\x14 \x01(\x05R\x08replicas\x12-\n\x07timeout\x18\x15 \x01(\x0b\x32\x13.iris.time.DurationR\x07timeout\x12$\n\x0e\x66\x61il_if_exists\x18\x16 \x01(\x08R\x0c\x66\x61ilIfExists\x12\x41\n\x0breservation\x18\x1e \x01(\x0b\x32\x1f.iris.cluster.ReservationConfigR\x0breservation\x1a*\n\x11LaunchJobResponse\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId\x1a\x32\n\x13GetJobStatusRequest\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobIdJ\x04\x08\x02\x10\x03\x1a\x86\x01\n\x14GetJobStatusResponse\x12)\n\x03job\x18\x01 \x01(\x0b\x32\x17.iris.cluster.JobStatusR\x03job\x12\x43\n\x07request\x18\x02 \x01(\x0b\x32).iris.cluster.Controller.LaunchJobRequestR\x07request\x1a,\n\x13TerminateJobRequest\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId\x1a\x98\x02\n\x0fListJobsRequest\x12\x16\n\x06offset\x18\x01 \x01(\x05R\x06offset\x12\x14\n\x05limit\x18\x02 \x01(\x05R\x05limit\x12\x44\n\nsort_field\x18\x03 \x01(\x0e\x32%.iris.cluster.Controller.JobSortFieldR\tsortField\x12M\n\x0esort_direction\x18\x04 \x01(\x0e\x32&.iris.cluster.Controller.SortDirectionR\rsortDirection\x12\x1f\n\x0bname_filter\x18\x05 \x01(\tR\nnameFilter\x12!\n\x0cstate_filter\x18\x06 \x01(\tR\x0bstateFilter\x1a{\n\x10ListJobsResponse\x12+\n\x04jobs\x18\x01 \x03(\x0b\x32\x17.iris.cluster.JobStatusR\x04jobs\x12\x1f\n\x0btotal_count\x18\x02 \x01(\x05R\ntotalCount\x12\x19\n\x08has_more\x18\x03 \x01(\x08R\x07hasMore\x1a/\n\x14GetTaskStatusRequest\x12\x17\n\x07task_id\x18\x01 \x01(\tR\x06taskId\x1a\x45\n\x15GetTaskStatusResponse\x12,\n\x04task\x18\x01 \x01(\x0b\x32\x18.iris.cluster.TaskStatusR\x04task\x1a)\n\x10ListTasksRequest\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId\x1a\x43\n\x11ListTasksResponse\x12.\n\x05tasks\x18\x01 \x03(\x0b\x32\x18.iris.cluster.TaskStatusR\x05tasks\x1a\xb8\x01\n\nWorkerInfo\x12\x1b\n\tworker_id\x18\x01 \x01(\tR\x08workerId\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x38\n\x08metadata\x18\x03 \x01(\x0b\x32\x1c.iris.cluster.WorkerMetadataR\x08metadata\x12\x39\n\rregistered_at\x18\x04 \x01(\x0b\x32\x14.iris.time.TimestampR\x0cregisteredAt\x1a\xe0\x02\n\x10WorkerTaskStatus\x12\x17\n\x07task_id\x18\x01 \x01(\tR\x06taskId\x12\x1d\n\nattempt_id\x18\x02 \x01(\x05R\tattemptId\x12-\n\x05state\x18\x03 \x01(\x0e\x32\x17.iris.cluster.TaskStateR\x05state\x12\x1b\n\texit_code\x18\x04 \x01(\x05R\x08\x65xitCode\x12\x14\n\x05\x65rror\x18\x05 \x01(\tR\x05\x65rror\x12\x35\n\x0b\x66inished_at\x18\x06 \x01(\x0b\x32\x14.iris.time.TimestampR\nfinishedAt\x12\x42\n\x0eresource_usage\x18\x08 \x01(\x0b\x32\x1b.iris.cluster.ResourceUsageR\rresourceUsage\x12\x37\n\x0blog_entries\x18\t \x03(\x0b\x32\x16.iris.logging.LogEntryR\nlogEntries\x1a\xde\x02\n\x12WorkerHealthStatus\x12\x1b\n\tworker_id\x18\x01 \x01(\tR\x08workerId\x12\x18\n\x07healthy\x18\x02 \x01(\x08R\x07healthy\x12\x31\n\x14\x63onsecutive_failures\x18\x03 \x01(\x05R\x13\x63onsecutiveFailures\x12;\n\x0elast_heartbeat\x18\x04 \x01(\x0b\x32\x14.iris.time.TimestampR\rlastHeartbeat\x12&\n\x0frunning_job_ids\x18\x05 \x03(\tR\rrunningJobIds\x12\x18\n\x07\x61\x64\x64ress\x18\x06 \x01(\tR\x07\x61\x64\x64ress\x12\x38\n\x08metadata\x18\x07 \x01(\x0b\x32\x1c.iris.cluster.WorkerMetadataR\x08metadata\x12%\n\x0estatus_message\x18\x08 \x01(\tR\rstatusMessage\x1a\x14\n\x12ListWorkersRequest\x1a\\\n\x13ListWorkersResponse\x12\x45\n\x07workers\x18\x01 \x03(\x0b\x32+.iris.cluster.Controller.WorkerHealthStatusR\x07workers\x1a\x82\x01\n\x0fRegisterRequest\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x38\n\x08metadata\x18\x02 \x01(\x0b\x32\x1c.iris.cluster.WorkerMetadataR\x08metadata\x12\x1b\n\tworker_id\x18\x03 \x01(\tR\x08workerId\x1aK\n\x10RegisterResponse\x12\x1b\n\tworker_id\x18\x01 \x01(\tR\x08workerId\x12\x1a\n\x08\x61\x63\x63\x65pted\x18\x02 \x01(\x08R\x08\x61\x63\x63\x65pted\x1a\xfc\x01\n\x08\x45ndpoint\x12\x1f\n\x0b\x65ndpoint_id\x18\x01 \x01(\tR\nendpointId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x03 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07task_id\x18\x04 \x01(\tR\x06taskId\x12K\n\x08metadata\x18\x05 \x03(\x0b\x32/.iris.cluster.Controller.Endpoint.MetadataEntryR\x08metadata\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a\xb9\x02\n\x17RegisterEndpointRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07\x61\x64\x64ress\x18\x02 \x01(\tR\x07\x61\x64\x64ress\x12\x17\n\x07task_id\x18\x03 \x01(\tR\x06taskId\x12Z\n\x08metadata\x18\x04 \x03(\x0b\x32>.iris.cluster.Controller.RegisterEndpointRequest.MetadataEntryR\x08metadata\x12\x1d\n\nattempt_id\x18\x05 \x01(\x05R\tattemptId\x12\x1f\n\x0b\x65ndpoint_id\x18\x06 \x01(\tR\nendpointId\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a;\n\x18RegisterEndpointResponse\x12\x1f\n\x0b\x65ndpoint_id\x18\x01 \x01(\tR\nendpointId\x1a<\n\x19UnregisterEndpointRequest\x12\x1f\n\x0b\x65ndpoint_id\x18\x01 \x01(\tR\nendpointId\x1a\x44\n\x14ListEndpointsRequest\x12\x16\n\x06prefix\x18\x01 \x01(\tR\x06prefix\x12\x14\n\x05\x65xact\x18\x02 \x01(\x08R\x05\x65xact\x1aX\n\x15ListEndpointsResponse\x12?\n\tendpoints\x18\x01 \x03(\x0b\x32!.iris.cluster.Controller.EndpointR\tendpoints\x1a\x1c\n\x1aGetAutoscalerStatusRequest\x1aP\n\x1bGetAutoscalerStatusResponse\x12\x31\n\x06status\x18\x01 \x01(\x0b\x32\x19.iris.vm.AutoscalerStatusR\x06status\x1a\x96\x01\n\x11TransactionAction\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x14.iris.time.TimestampR\ttimestamp\x12\x16\n\x06\x61\x63tion\x18\x02 \x01(\tR\x06\x61\x63tion\x12\x1b\n\tentity_id\x18\x03 \x01(\tR\x08\x65ntityId\x12\x18\n\x07\x64\x65tails\x18\x04 \x01(\tR\x07\x64\x65tails\x1a.\n\x16GetTransactionsRequest\x12\x14\n\x05limit\x18\x01 \x01(\x05R\x05limit\x1a_\n\x17GetTransactionsResponse\x12\x44\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32*.iris.cluster.Controller.TransactionActionR\x07\x61\x63tions\x1a\x18\n\x16\x42\x65ginCheckpointRequest\x1a\xd6\x01\n\x17\x42\x65ginCheckpointResponse\x12\'\n\x0f\x63heckpoint_path\x18\x01 \x01(\tR\x0e\x63heckpointPath\x12\x33\n\ncreated_at\x18\x02 \x01(\x0b\x32\x14.iris.time.TimestampR\tcreatedAt\x12\x1b\n\tjob_count\x18\x03 \x01(\x05R\x08jobCount\x12\x1d\n\ntask_count\x18\x04 \x01(\x05R\ttaskCount\x12!\n\x0cworker_count\x18\x05 \x01(\x05R\x0bworkerCount\x1a\xf3\x02\n\x0bUserSummary\x12\x12\n\x04user\x18\x01 \x01(\tR\x04user\x12\x65\n\x11task_state_counts\x18\x02 \x03(\x0b\x32\x39.iris.cluster.Controller.UserSummary.TaskStateCountsEntryR\x0ftaskStateCounts\x12\x62\n\x10job_state_counts\x18\x03 \x03(\x0b\x32\x38.iris.cluster.Controller.UserSummary.JobStateCountsEntryR\x0ejobStateCounts\x1a\x42\n\x14TaskStateCountsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x05R\x05value:\x02\x38\x01\x1a\x41\n\x13JobStateCountsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x05R\x05value:\x02\x38\x01\x1a\x12\n\x10ListUsersRequest\x1aO\n\x11ListUsersResponse\x12:\n\x05users\x18\x01 \x03(\x0b\x32$.iris.cluster.Controller.UserSummaryR\x05users\x1a\x98\x02\n\x12GetTaskLogsRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12)\n\x10include_children\x18\x02 \x01(\x08R\x0fincludeChildren\x12\x19\n\x08since_ms\x18\x03 \x01(\x03R\x07sinceMs\x12&\n\x0fmax_total_lines\x18\x04 \x01(\x03R\rmaxTotalLines\x12\x1c\n\tsubstring\x18\x05 \x01(\tR\tsubstring\x12\x1d\n\nattempt_id\x18\x06 \x01(\x05R\tattemptId\x12\x1b\n\tmin_level\x18\x07 \x01(\tR\x08minLevel\x12\x16\n\x06\x63ursor\x18\x08 \x01(\x03R\x06\x63ursor\x12\x12\n\x04tail\x18\t \x01(\x08R\x04tail\x1a\x86\x01\n\x0cTaskLogBatch\x12\x17\n\x07task_id\x18\x01 \x01(\tR\x06taskId\x12*\n\x04logs\x18\x02 \x03(\x0b\x32\x16.iris.logging.LogEntryR\x04logs\x12\x14\n\x05\x65rror\x18\x03 \x01(\tR\x05\x65rror\x12\x1b\n\tworker_id\x18\x04 \x01(\tR\x08workerId\x1a\xd6\x01\n\x13GetTaskLogsResponse\x12\x42\n\ttask_logs\x18\x01 \x03(\x0b\x32%.iris.cluster.Controller.TaskLogBatchR\x08taskLogs\x12\x1c\n\ttruncated\x18\x02 \x01(\x08R\ttruncated\x12\x45\n\x12\x63hild_job_statuses\x18\x03 \x03(\x0b\x32\x17.iris.cluster.JobStatusR\x10\x63hildJobStatuses\x12\x16\n\x06\x63ursor\x18\x04 \x01(\x03R\x06\x63ursor\x1a(\n\x16GetWorkerStatusRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x1a\xf4\x03\n\x17GetWorkerStatusResponse\x12\x1f\n\x02vm\x18\x01 \x01(\x0b\x32\x0f.iris.vm.VmInfoR\x02vm\x12\x1f\n\x0bscale_group\x18\x02 \x01(\tR\nscaleGroup\x12\x43\n\x06worker\x18\x03 \x01(\x0b\x32+.iris.cluster.Controller.WorkerHealthStatusR\x06worker\x12%\n\x0e\x62ootstrap_logs\x18\x04 \x01(\tR\rbootstrapLogs\x12\x44\n\x12worker_log_entries\x18\t \x03(\x0b\x32\x16.iris.logging.LogEntryR\x10workerLogEntries\x12;\n\x0crecent_tasks\x18\x06 \x03(\x0b\x32\x18.iris.cluster.TaskStatusR\x0brecentTasks\x12Q\n\x11\x63urrent_resources\x18\x07 \x01(\x0b\x32$.iris.cluster.WorkerResourceSnapshotR\x10\x63urrentResources\x12O\n\x10resource_history\x18\x08 \x03(\x0b\x32$.iris.cluster.WorkerResourceSnapshotR\x0fresourceHistoryJ\x04\x08\x05\x10\x06\"\xb7\x01\n\x0cJobSortField\x12\x1e\n\x1aJOB_SORT_FIELD_UNSPECIFIED\x10\x00\x12\x17\n\x13JOB_SORT_FIELD_DATE\x10\x01\x12\x17\n\x13JOB_SORT_FIELD_NAME\x10\x02\x12\x18\n\x14JOB_SORT_FIELD_STATE\x10\x03\x12\x1b\n\x17JOB_SORT_FIELD_FAILURES\x10\x04\x12\x1e\n\x1aJOB_SORT_FIELD_PREEMPTIONS\x10\x05\"`\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12\x16\n\x12SORT_DIRECTION_ASC\x10\x01\x12\x17\n\x13SORT_DIRECTION_DESC\x10\x02\"\xc3\x06\n\x06Worker\x1a\xc6\x03\n\x0eRunTaskRequest\x12\x17\n\x07task_id\x18\x01 \x01(\tR\x06taskId\x12\x1b\n\tnum_tasks\x18\x02 \x01(\x05R\x08numTasks\x12?\n\nentrypoint\x18\x03 \x01(\x0b\x32\x1f.iris.cluster.RuntimeEntrypointR\nentrypoint\x12\x41\n\x0b\x65nvironment\x18\x04 \x01(\x0b\x32\x1f.iris.cluster.EnvironmentConfigR\x0b\x65nvironment\x12\x1b\n\tbundle_id\x18\x05 \x01(\tR\x08\x62undleId\x12=\n\tresources\x18\x06 \x01(\x0b\x32\x1f.iris.cluster.ResourceSpecProtoR\tresources\x12-\n\x07timeout\x18\x07 \x01(\x0b\x32\x13.iris.time.DurationR\x07timeout\x12\x14\n\x05ports\x18\x08 \x03(\tR\x05ports\x12\x1d\n\nattempt_id\x18\t \x01(\x05R\tattemptId\x12:\n\x0b\x63onstraints\x18\n \x03(\x0b\x32\x18.iris.cluster.ConstraintR\x0b\x63onstraints\x1a\x35\n\x14GetTaskStatusRequest\x12\x17\n\x07task_id\x18\x01 \x01(\tR\x06taskIdJ\x04\x08\x02\x10\x03\x1a\x12\n\x10ListTasksRequest\x1a\x43\n\x11ListTasksResponse\x12.\n\x05tasks\x18\x01 \x03(\x0b\x32\x18.iris.cluster.TaskStatusR\x05tasks\x1a\x62\n\x0fKillTaskRequest\x12\x17\n\x07task_id\x18\x01 \x01(\tR\x06taskId\x12\x36\n\x0cterm_timeout\x18\x02 \x01(\x0b\x32\x13.iris.time.DurationR\x0btermTimeout\x1a|\n\x0eHealthResponse\x12\x18\n\x07healthy\x18\x01 \x01(\x08R\x07healthy\x12+\n\x06uptime\x18\x02 \x01(\x0b\x32\x13.iris.time.DurationR\x06uptime\x12#\n\rrunning_tasks\x18\x03 \x01(\x05R\x0crunningTasks\"\xcf\x01\n\x10HeartbeatRequest\x12\x45\n\x0ctasks_to_run\x18\x01 \x03(\x0b\x32#.iris.cluster.Worker.RunTaskRequestR\ntasksToRun\x12\"\n\rtasks_to_kill\x18\x02 \x03(\tR\x0btasksToKill\x12P\n\x0e\x65xpected_tasks\x18\x03 \x03(\x0b\x32).iris.cluster.Controller.WorkerTaskStatusR\rexpectedTasks\"\xf1\x01\n\x11HeartbeatResponse\x12?\n\x05tasks\x18\x04 \x03(\x0b\x32).iris.cluster.Controller.WorkerTaskStatusR\x05tasks\x12Q\n\x11resource_snapshot\x18\x03 \x01(\x0b\x32$.iris.cluster.WorkerResourceSnapshotR\x10resourceSnapshot\x12%\n\x0eworker_healthy\x18\x05 \x01(\x08R\rworkerHealthy\x12!\n\x0chealth_error\x18\x06 \x01(\tR\x0bhealthError*\xea\x01\n\x08JobState\x12\x19\n\x15JOB_STATE_UNSPECIFIED\x10\x00\x12\x15\n\x11JOB_STATE_PENDING\x10\x01\x12\x16\n\x12JOB_STATE_BUILDING\x10\x02\x12\x15\n\x11JOB_STATE_RUNNING\x10\x03\x12\x17\n\x13JOB_STATE_SUCCEEDED\x10\x04\x12\x14\n\x10JOB_STATE_FAILED\x10\x05\x12\x14\n\x10JOB_STATE_KILLED\x10\x06\x12\x1b\n\x17JOB_STATE_WORKER_FAILED\x10\x07\x12\x1b\n\x17JOB_STATE_UNSCHEDULABLE\x10\x08*\x8d\x02\n\tTaskState\x12\x1a\n\x16TASK_STATE_UNSPECIFIED\x10\x00\x12\x16\n\x12TASK_STATE_PENDING\x10\x01\x12\x17\n\x13TASK_STATE_BUILDING\x10\x02\x12\x16\n\x12TASK_STATE_RUNNING\x10\x03\x12\x18\n\x14TASK_STATE_SUCCEEDED\x10\x04\x12\x15\n\x11TASK_STATE_FAILED\x10\x05\x12\x15\n\x11TASK_STATE_KILLED\x10\x06\x12\x1c\n\x18TASK_STATE_WORKER_FAILED\x10\x07\x12\x1c\n\x18TASK_STATE_UNSCHEDULABLE\x10\x08\x12\x17\n\x13TASK_STATE_ASSIGNED\x10\t*\xe0\x01\n\x0c\x43onstraintOp\x12\x14\n\x10\x43ONSTRAINT_OP_EQ\x10\x00\x12\x14\n\x10\x43ONSTRAINT_OP_NE\x10\x01\x12\x18\n\x14\x43ONSTRAINT_OP_EXISTS\x10\x02\x12\x1c\n\x18\x43ONSTRAINT_OP_NOT_EXISTS\x10\x03\x12\x14\n\x10\x43ONSTRAINT_OP_GT\x10\x04\x12\x14\n\x10\x43ONSTRAINT_OP_GE\x10\x05\x12\x14\n\x10\x43ONSTRAINT_OP_LT\x10\x06\x12\x14\n\x10\x43ONSTRAINT_OP_LE\x10\x07\x12\x14\n\x10\x43ONSTRAINT_OP_IN\x10\x08\x32\x9d\x14\n\x11\x43ontrollerService\x12\x62\n\tLaunchJob\x12).iris.cluster.Controller.LaunchJobRequest\x1a*.iris.cluster.Controller.LaunchJobResponse\x12k\n\x0cGetJobStatus\x12,.iris.cluster.Controller.GetJobStatusRequest\x1a-.iris.cluster.Controller.GetJobStatusResponse\x12Q\n\x0cTerminateJob\x12,.iris.cluster.Controller.TerminateJobRequest\x1a\x13.iris.cluster.Empty\x12_\n\x08ListJobs\x12(.iris.cluster.Controller.ListJobsRequest\x1a).iris.cluster.Controller.ListJobsResponse\x12n\n\rGetTaskStatus\x12-.iris.cluster.Controller.GetTaskStatusRequest\x1a..iris.cluster.Controller.GetTaskStatusResponse\x12\x62\n\tListTasks\x12).iris.cluster.Controller.ListTasksRequest\x1a*.iris.cluster.Controller.ListTasksResponse\x12_\n\x08Register\x12(.iris.cluster.Controller.RegisterRequest\x1a).iris.cluster.Controller.RegisterResponse\x12h\n\x0bListWorkers\x12+.iris.cluster.Controller.ListWorkersRequest\x1a,.iris.cluster.Controller.ListWorkersResponse\x12w\n\x10RegisterEndpoint\x12\x30.iris.cluster.Controller.RegisterEndpointRequest\x1a\x31.iris.cluster.Controller.RegisterEndpointResponse\x12]\n\x12UnregisterEndpoint\x12\x32.iris.cluster.Controller.UnregisterEndpointRequest\x1a\x13.iris.cluster.Empty\x12n\n\rListEndpoints\x12-.iris.cluster.Controller.ListEndpointsRequest\x1a..iris.cluster.Controller.ListEndpointsResponse\x12\x80\x01\n\x13GetAutoscalerStatus\x12\x33.iris.cluster.Controller.GetAutoscalerStatusRequest\x1a\x34.iris.cluster.Controller.GetAutoscalerStatusResponse\x12t\n\x0fGetTransactions\x12/.iris.cluster.Controller.GetTransactionsRequest\x1a\x30.iris.cluster.Controller.GetTransactionsResponse\x12\x62\n\tListUsers\x12).iris.cluster.Controller.ListUsersRequest\x1a*.iris.cluster.Controller.ListUsersResponse\x12h\n\x0bGetTaskLogs\x12+.iris.cluster.Controller.GetTaskLogsRequest\x1a,.iris.cluster.Controller.GetTaskLogsResponse\x12L\n\tFetchLogs\x12\x1e.iris.cluster.FetchLogsRequest\x1a\x1f.iris.cluster.FetchLogsResponse\x12R\n\x0bProfileTask\x12 .iris.cluster.ProfileTaskRequest\x1a!.iris.cluster.ProfileTaskResponse\x12t\n\x0fGetWorkerStatus\x12/.iris.cluster.Controller.GetWorkerStatusRequest\x1a\x30.iris.cluster.Controller.GetWorkerStatusResponse\x12t\n\x0f\x42\x65ginCheckpoint\x12/.iris.cluster.Controller.BeginCheckpointRequest\x1a\x30.iris.cluster.Controller.BeginCheckpointResponse\x12\x61\n\x10GetProcessStatus\x12%.iris.cluster.GetProcessStatusRequest\x1a&.iris.cluster.GetProcessStatusResponse\x12R\n\x0bGetAuthInfo\x12 .iris.cluster.GetAuthInfoRequest\x1a!.iris.cluster.GetAuthInfoResponse\x12@\n\x05Login\x12\x1a.iris.cluster.LoginRequest\x1a\x1b.iris.cluster.LoginResponse\x12U\n\x0c\x43reateApiKey\x12!.iris.cluster.CreateApiKeyRequest\x1a\".iris.cluster.CreateApiKeyResponse\x12\x46\n\x0cRevokeApiKey\x12!.iris.cluster.RevokeApiKeyRequest\x1a\x13.iris.cluster.Empty\x12R\n\x0bListApiKeys\x12 .iris.cluster.ListApiKeysRequest\x1a!.iris.cluster.ListApiKeysResponse\x12[\n\x0eGetCurrentUser\x12#.iris.cluster.GetCurrentUserRequest\x1a$.iris.cluster.GetCurrentUserResponse2\xdd\x04\n\rWorkerService\x12T\n\rGetTaskStatus\x12).iris.cluster.Worker.GetTaskStatusRequest\x1a\x18.iris.cluster.TaskStatus\x12Z\n\tListTasks\x12%.iris.cluster.Worker.ListTasksRequest\x1a&.iris.cluster.Worker.ListTasksResponse\x12G\n\x0bHealthCheck\x12\x13.iris.cluster.Empty\x1a#.iris.cluster.Worker.HealthResponse\x12L\n\tFetchLogs\x12\x1e.iris.cluster.FetchLogsRequest\x1a\x1f.iris.cluster.FetchLogsResponse\x12L\n\tHeartbeat\x12\x1e.iris.cluster.HeartbeatRequest\x1a\x1f.iris.cluster.HeartbeatResponse\x12R\n\x0bProfileTask\x12 .iris.cluster.ProfileTaskRequest\x1a!.iris.cluster.ProfileTaskResponse\x12\x61\n\x10GetProcessStatus\x12%.iris.cluster.GetProcessStatusRequest\x1a&.iris.cluster.GetProcessStatusResponseBq\n\x10\x63om.iris.clusterB\x0c\x43lusterProtoP\x01\xa2\x02\x03ICX\xaa\x02\x0cIris.Cluster\xca\x02\x0cIris\\Cluster\xe2\x02\x18Iris\\Cluster\\GPBMetadata\xea\x02\rIris::Clusterb\x08\x65\x64itionsp\xe8\x07') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cluster_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\020com.iris.clusterB\014ClusterProtoP\001\242\002\003ICX\252\002\014Iris.Cluster\312\002\014Iris\\Cluster\342\002\030Iris\\Cluster\\GPBMetadata\352\002\rIris::Cluster' - _globals['_TASKSTATUS_PORTSENTRY']._loaded_options = None - _globals['_TASKSTATUS_PORTSENTRY']._serialized_options = b'8\001' - _globals['_JOBSTATUS_PORTSENTRY']._loaded_options = None - _globals['_JOBSTATUS_PORTSENTRY']._serialized_options = b'8\001' - _globals['_JOBSTATUS_TASKSTATECOUNTSENTRY']._loaded_options = None - _globals['_JOBSTATUS_TASKSTATECOUNTSENTRY']._serialized_options = b'8\001' - _globals['_ENVIRONMENTCONFIG_ENVVARSENTRY']._loaded_options = None - _globals['_ENVIRONMENTCONFIG_ENVVARSENTRY']._serialized_options = b'8\001' - _globals['_RUNTIMEENTRYPOINT_WORKDIRFILESENTRY']._loaded_options = None - _globals['_RUNTIMEENTRYPOINT_WORKDIRFILESENTRY']._serialized_options = b'8\001' - _globals['_WORKERMETADATA_ATTRIBUTESENTRY']._loaded_options = None - _globals['_WORKERMETADATA_ATTRIBUTESENTRY']._serialized_options = b'8\001' - _globals['_CONTROLLER_ENDPOINT_METADATAENTRY']._loaded_options = None - _globals['_CONTROLLER_ENDPOINT_METADATAENTRY']._serialized_options = b'8\001' - _globals['_CONTROLLER_REGISTERENDPOINTREQUEST_METADATAENTRY']._loaded_options = None - _globals['_CONTROLLER_REGISTERENDPOINTREQUEST_METADATAENTRY']._serialized_options = b'8\001' - _globals['_CONTROLLER_USERSUMMARY_TASKSTATECOUNTSENTRY']._loaded_options = None - _globals['_CONTROLLER_USERSUMMARY_TASKSTATECOUNTSENTRY']._serialized_options = b'8\001' - _globals['_CONTROLLER_USERSUMMARY_JOBSTATECOUNTSENTRY']._loaded_options = None - _globals['_CONTROLLER_USERSUMMARY_JOBSTATECOUNTSENTRY']._serialized_options = b'8\001' - _globals['_JOBSTATE']._serialized_start=16137 - _globals['_JOBSTATE']._serialized_end=16371 - _globals['_TASKSTATE']._serialized_start=16374 - _globals['_TASKSTATE']._serialized_end=16643 - _globals['_CONSTRAINTOP']._serialized_start=16646 - _globals['_CONSTRAINTOP']._serialized_end=16870 - _globals['_EMPTY']._serialized_start=68 - _globals['_EMPTY']._serialized_end=75 - _globals['_LOGINREQUEST']._serialized_start=77 - _globals['_LOGINREQUEST']._serialized_end=130 - _globals['_LOGINRESPONSE']._serialized_start=132 - _globals['_LOGINRESPONSE']._serialized_end=217 - _globals['_GETAUTHINFOREQUEST']._serialized_start=219 - _globals['_GETAUTHINFOREQUEST']._serialized_end=239 - _globals['_GETAUTHINFORESPONSE']._serialized_start=241 - _globals['_GETAUTHINFORESPONSE']._serialized_end=328 - _globals['_CREATEAPIKEYREQUEST']._serialized_start=330 - _globals['_CREATEAPIKEYREQUEST']._serialized_end=419 - _globals['_CREATEAPIKEYRESPONSE']._serialized_start=421 - _globals['_CREATEAPIKEYRESPONSE']._serialized_end=519 - _globals['_REVOKEAPIKEYREQUEST']._serialized_start=521 - _globals['_REVOKEAPIKEYREQUEST']._serialized_end=565 - _globals['_LISTAPIKEYSREQUEST']._serialized_start=567 - _globals['_LISTAPIKEYSREQUEST']._serialized_end=612 - _globals['_APIKEYINFO']._serialized_start=615 - _globals['_APIKEYINFO']._serialized_end=863 - _globals['_LISTAPIKEYSRESPONSE']._serialized_start=865 - _globals['_LISTAPIKEYSRESPONSE']._serialized_end=932 - _globals['_GETCURRENTUSERREQUEST']._serialized_start=934 - _globals['_GETCURRENTUSERREQUEST']._serialized_end=957 - _globals['_GETCURRENTUSERRESPONSE']._serialized_start=959 - _globals['_GETCURRENTUSERRESPONSE']._serialized_end=1063 - _globals['_CPUPROFILE']._serialized_start=1066 - _globals['_CPUPROFILE']._serialized_end=1235 - _globals['_CPUPROFILE_FORMAT']._serialized_start=1162 - _globals['_CPUPROFILE_FORMAT']._serialized_end=1235 - _globals['_MEMORYPROFILE']._serialized_start=1238 - _globals['_MEMORYPROFILE']._serialized_end=1407 - _globals['_MEMORYPROFILE_FORMAT']._serialized_start=1337 - _globals['_MEMORYPROFILE_FORMAT']._serialized_end=1407 - _globals['_THREADSPROFILE']._serialized_start=1409 - _globals['_THREADSPROFILE']._serialized_end=1425 - _globals['_PROFILETYPE']._serialized_start=1428 - _globals['_PROFILETYPE']._serialized_end=1612 - _globals['_PROFILETASKREQUEST']._serialized_start=1615 - _globals['_PROFILETASKREQUEST']._serialized_end=1770 - _globals['_PROFILETASKRESPONSE']._serialized_start=1772 - _globals['_PROFILETASKRESPONSE']._serialized_end=1850 - _globals['_FETCHLOGSREQUEST']._serialized_start=1853 - _globals['_FETCHLOGSREQUEST']._serialized_end=2054 - _globals['_FETCHLOGSRESPONSE']._serialized_start=2056 - _globals['_FETCHLOGSRESPONSE']._serialized_end=2149 - _globals['_PROCESSINFO']._serialized_start=2152 - _globals['_PROCESSINFO']._serialized_end=2569 - _globals['_GETPROCESSSTATUSREQUEST']._serialized_start=2572 - _globals['_GETPROCESSSTATUSREQUEST']._serialized_end=2730 - _globals['_GETPROCESSSTATUSRESPONSE']._serialized_start=2733 - _globals['_GETPROCESSSTATUSRESPONSE']._serialized_end=2878 - _globals['_TASKSTATUS']._serialized_start=2881 - _globals['_TASKSTATUS']._serialized_end=3624 - _globals['_TASKSTATUS_PORTSENTRY']._serialized_start=3568 - _globals['_TASKSTATUS_PORTSENTRY']._serialized_end=3624 - _globals['_TASKATTEMPT']._serialized_start=3627 - _globals['_TASKATTEMPT']._serialized_end=3950 - _globals['_RESOURCEUSAGE']._serialized_start=3953 - _globals['_RESOURCEUSAGE']._serialized_end=4169 - _globals['_WORKERRESOURCESNAPSHOT']._serialized_start=4172 - _globals['_WORKERRESOURCESNAPSHOT']._serialized_end=4615 - _globals['_BUILDMETRICS']._serialized_start=4618 - _globals['_BUILDMETRICS']._serialized_end=4812 - _globals['_JOBSTATUS']._serialized_start=4815 - _globals['_JOBSTATUS']._serialized_end=5885 - _globals['_JOBSTATUS_PORTSENTRY']._serialized_start=3568 - _globals['_JOBSTATUS_PORTSENTRY']._serialized_end=3624 - _globals['_JOBSTATUS_TASKSTATECOUNTSENTRY']._serialized_start=5813 - _globals['_JOBSTATUS_TASKSTATECOUNTSENTRY']._serialized_end=5879 - _globals['_RESERVATIONENTRY']._serialized_start=5888 - _globals['_RESERVATIONENTRY']._serialized_end=6029 - _globals['_RESERVATIONCONFIG']._serialized_start=6031 - _globals['_RESERVATIONCONFIG']._serialized_end=6108 - _globals['_DEVICECONFIG']._serialized_start=6111 - _globals['_DEVICECONFIG']._serialized_end=6270 - _globals['_CPUDEVICE']._serialized_start=6272 - _globals['_CPUDEVICE']._serialized_end=6309 - _globals['_GPUDEVICE']._serialized_start=6311 - _globals['_GPUDEVICE']._serialized_end=6370 - _globals['_TPUDEVICE']._serialized_start=6372 - _globals['_TPUDEVICE']._serialized_end=6459 - _globals['_RESOURCESPECPROTO']._serialized_start=6462 - _globals['_RESOURCESPECPROTO']._serialized_end=6638 - _globals['_ENVIRONMENTCONFIG']._serialized_start=6641 - _globals['_ENVIRONMENTCONFIG']._serialized_end=6923 - _globals['_ENVIRONMENTCONFIG_ENVVARSENTRY']._serialized_start=6865 - _globals['_ENVIRONMENTCONFIG_ENVVARSENTRY']._serialized_end=6923 - _globals['_COMMANDENTRYPOINT']._serialized_start=6925 - _globals['_COMMANDENTRYPOINT']._serialized_end=6964 - _globals['_RUNTIMEENTRYPOINT']._serialized_start=6967 - _globals['_RUNTIMEENTRYPOINT']._serialized_end=7244 - _globals['_RUNTIMEENTRYPOINT_WORKDIRFILESENTRY']._serialized_start=7181 - _globals['_RUNTIMEENTRYPOINT_WORKDIRFILESENTRY']._serialized_end=7244 - _globals['_ATTRIBUTEVALUE']._serialized_start=7247 - _globals['_ATTRIBUTEVALUE']._serialized_end=7375 - _globals['_CONSTRAINT']._serialized_start=7378 - _globals['_CONSTRAINT']._serialized_end=7558 - _globals['_COSCHEDULINGCONFIG']._serialized_start=7560 - _globals['_COSCHEDULINGCONFIG']._serialized_end=7607 - _globals['_WORKERMETADATA']._serialized_start=7610 - _globals['_WORKERMETADATA']._serialized_end=8395 - _globals['_WORKERMETADATA_ATTRIBUTESENTRY']._serialized_start=8304 - _globals['_WORKERMETADATA_ATTRIBUTESENTRY']._serialized_end=8395 - _globals['_CONTROLLER']._serialized_start=8398 - _globals['_CONTROLLER']._serialized_end=14842 - _globals['_CONTROLLER_LAUNCHJOBREQUEST']._serialized_start=8413 - _globals['_CONTROLLER_LAUNCHJOBREQUEST']._serialized_end=9254 - _globals['_CONTROLLER_LAUNCHJOBRESPONSE']._serialized_start=9256 - _globals['_CONTROLLER_LAUNCHJOBRESPONSE']._serialized_end=9298 - _globals['_CONTROLLER_GETJOBSTATUSREQUEST']._serialized_start=9300 - _globals['_CONTROLLER_GETJOBSTATUSREQUEST']._serialized_end=9350 - _globals['_CONTROLLER_GETJOBSTATUSRESPONSE']._serialized_start=9353 - _globals['_CONTROLLER_GETJOBSTATUSRESPONSE']._serialized_end=9487 - _globals['_CONTROLLER_TERMINATEJOBREQUEST']._serialized_start=9489 - _globals['_CONTROLLER_TERMINATEJOBREQUEST']._serialized_end=9533 - _globals['_CONTROLLER_LISTJOBSREQUEST']._serialized_start=9536 - _globals['_CONTROLLER_LISTJOBSREQUEST']._serialized_end=9816 - _globals['_CONTROLLER_LISTJOBSRESPONSE']._serialized_start=9818 - _globals['_CONTROLLER_LISTJOBSRESPONSE']._serialized_end=9941 - _globals['_CONTROLLER_GETTASKSTATUSREQUEST']._serialized_start=9943 - _globals['_CONTROLLER_GETTASKSTATUSREQUEST']._serialized_end=9990 - _globals['_CONTROLLER_GETTASKSTATUSRESPONSE']._serialized_start=9992 - _globals['_CONTROLLER_GETTASKSTATUSRESPONSE']._serialized_end=10061 - _globals['_CONTROLLER_LISTTASKSREQUEST']._serialized_start=10063 - _globals['_CONTROLLER_LISTTASKSREQUEST']._serialized_end=10104 - _globals['_CONTROLLER_LISTTASKSRESPONSE']._serialized_start=10106 - _globals['_CONTROLLER_LISTTASKSRESPONSE']._serialized_end=10173 - _globals['_CONTROLLER_WORKERINFO']._serialized_start=10176 - _globals['_CONTROLLER_WORKERINFO']._serialized_end=10360 - _globals['_CONTROLLER_WORKERTASKSTATUS']._serialized_start=10363 - _globals['_CONTROLLER_WORKERTASKSTATUS']._serialized_end=10715 - _globals['_CONTROLLER_WORKERHEALTHSTATUS']._serialized_start=10718 - _globals['_CONTROLLER_WORKERHEALTHSTATUS']._serialized_end=11068 - _globals['_CONTROLLER_LISTWORKERSREQUEST']._serialized_start=11070 - _globals['_CONTROLLER_LISTWORKERSREQUEST']._serialized_end=11090 - _globals['_CONTROLLER_LISTWORKERSRESPONSE']._serialized_start=11092 - _globals['_CONTROLLER_LISTWORKERSRESPONSE']._serialized_end=11184 - _globals['_CONTROLLER_REGISTERREQUEST']._serialized_start=11187 - _globals['_CONTROLLER_REGISTERREQUEST']._serialized_end=11317 - _globals['_CONTROLLER_REGISTERRESPONSE']._serialized_start=11319 - _globals['_CONTROLLER_REGISTERRESPONSE']._serialized_end=11394 - _globals['_CONTROLLER_ENDPOINT']._serialized_start=11397 - _globals['_CONTROLLER_ENDPOINT']._serialized_end=11649 - _globals['_CONTROLLER_ENDPOINT_METADATAENTRY']._serialized_start=11590 - _globals['_CONTROLLER_ENDPOINT_METADATAENTRY']._serialized_end=11649 - _globals['_CONTROLLER_REGISTERENDPOINTREQUEST']._serialized_start=11652 - _globals['_CONTROLLER_REGISTERENDPOINTREQUEST']._serialized_end=11965 - _globals['_CONTROLLER_REGISTERENDPOINTREQUEST_METADATAENTRY']._serialized_start=11590 - _globals['_CONTROLLER_REGISTERENDPOINTREQUEST_METADATAENTRY']._serialized_end=11649 - _globals['_CONTROLLER_REGISTERENDPOINTRESPONSE']._serialized_start=11967 - _globals['_CONTROLLER_REGISTERENDPOINTRESPONSE']._serialized_end=12026 - _globals['_CONTROLLER_UNREGISTERENDPOINTREQUEST']._serialized_start=12028 - _globals['_CONTROLLER_UNREGISTERENDPOINTREQUEST']._serialized_end=12088 - _globals['_CONTROLLER_LISTENDPOINTSREQUEST']._serialized_start=12090 - _globals['_CONTROLLER_LISTENDPOINTSREQUEST']._serialized_end=12158 - _globals['_CONTROLLER_LISTENDPOINTSRESPONSE']._serialized_start=12160 - _globals['_CONTROLLER_LISTENDPOINTSRESPONSE']._serialized_end=12248 - _globals['_CONTROLLER_GETAUTOSCALERSTATUSREQUEST']._serialized_start=12250 - _globals['_CONTROLLER_GETAUTOSCALERSTATUSREQUEST']._serialized_end=12278 - _globals['_CONTROLLER_GETAUTOSCALERSTATUSRESPONSE']._serialized_start=12280 - _globals['_CONTROLLER_GETAUTOSCALERSTATUSRESPONSE']._serialized_end=12360 - _globals['_CONTROLLER_TRANSACTIONACTION']._serialized_start=12363 - _globals['_CONTROLLER_TRANSACTIONACTION']._serialized_end=12513 - _globals['_CONTROLLER_GETTRANSACTIONSREQUEST']._serialized_start=12515 - _globals['_CONTROLLER_GETTRANSACTIONSREQUEST']._serialized_end=12561 - _globals['_CONTROLLER_GETTRANSACTIONSRESPONSE']._serialized_start=12563 - _globals['_CONTROLLER_GETTRANSACTIONSRESPONSE']._serialized_end=12658 - _globals['_CONTROLLER_BEGINCHECKPOINTREQUEST']._serialized_start=12660 - _globals['_CONTROLLER_BEGINCHECKPOINTREQUEST']._serialized_end=12684 - _globals['_CONTROLLER_BEGINCHECKPOINTRESPONSE']._serialized_start=12687 - _globals['_CONTROLLER_BEGINCHECKPOINTRESPONSE']._serialized_end=12901 - _globals['_CONTROLLER_USERSUMMARY']._serialized_start=12904 - _globals['_CONTROLLER_USERSUMMARY']._serialized_end=13275 - _globals['_CONTROLLER_USERSUMMARY_TASKSTATECOUNTSENTRY']._serialized_start=5813 - _globals['_CONTROLLER_USERSUMMARY_TASKSTATECOUNTSENTRY']._serialized_end=5879 - _globals['_CONTROLLER_USERSUMMARY_JOBSTATECOUNTSENTRY']._serialized_start=13210 - _globals['_CONTROLLER_USERSUMMARY_JOBSTATECOUNTSENTRY']._serialized_end=13275 - _globals['_CONTROLLER_LISTUSERSREQUEST']._serialized_start=13277 - _globals['_CONTROLLER_LISTUSERSREQUEST']._serialized_end=13295 - _globals['_CONTROLLER_LISTUSERSRESPONSE']._serialized_start=13297 - _globals['_CONTROLLER_LISTUSERSRESPONSE']._serialized_end=13376 - _globals['_CONTROLLER_GETTASKLOGSREQUEST']._serialized_start=13379 - _globals['_CONTROLLER_GETTASKLOGSREQUEST']._serialized_end=13659 - _globals['_CONTROLLER_TASKLOGBATCH']._serialized_start=13662 - _globals['_CONTROLLER_TASKLOGBATCH']._serialized_end=13796 - _globals['_CONTROLLER_GETTASKLOGSRESPONSE']._serialized_start=13799 - _globals['_CONTROLLER_GETTASKLOGSRESPONSE']._serialized_end=14013 - _globals['_CONTROLLER_GETWORKERSTATUSREQUEST']._serialized_start=14015 - _globals['_CONTROLLER_GETWORKERSTATUSREQUEST']._serialized_end=14055 - _globals['_CONTROLLER_GETWORKERSTATUSRESPONSE']._serialized_start=14058 - _globals['_CONTROLLER_GETWORKERSTATUSRESPONSE']._serialized_end=14558 - _globals['_CONTROLLER_JOBSORTFIELD']._serialized_start=14561 - _globals['_CONTROLLER_JOBSORTFIELD']._serialized_end=14744 - _globals['_CONTROLLER_SORTDIRECTION']._serialized_start=14746 - _globals['_CONTROLLER_SORTDIRECTION']._serialized_end=14842 - _globals['_WORKER']._serialized_start=14845 - _globals['_WORKER']._serialized_end=15680 - _globals['_WORKER_RUNTASKREQUEST']._serialized_start=14856 - _globals['_WORKER_RUNTASKREQUEST']._serialized_end=15310 - _globals['_WORKER_GETTASKSTATUSREQUEST']._serialized_start=15312 - _globals['_WORKER_GETTASKSTATUSREQUEST']._serialized_end=15365 - _globals['_WORKER_LISTTASKSREQUEST']._serialized_start=10063 - _globals['_WORKER_LISTTASKSREQUEST']._serialized_end=10081 - _globals['_WORKER_LISTTASKSRESPONSE']._serialized_start=10106 - _globals['_WORKER_LISTTASKSRESPONSE']._serialized_end=10173 - _globals['_WORKER_KILLTASKREQUEST']._serialized_start=15456 - _globals['_WORKER_KILLTASKREQUEST']._serialized_end=15554 - _globals['_WORKER_HEALTHRESPONSE']._serialized_start=15556 - _globals['_WORKER_HEALTHRESPONSE']._serialized_end=15680 - _globals['_HEARTBEATREQUEST']._serialized_start=15683 - _globals['_HEARTBEATREQUEST']._serialized_end=15890 - _globals['_HEARTBEATRESPONSE']._serialized_start=15893 - _globals['_HEARTBEATRESPONSE']._serialized_end=16134 - _globals['_CONTROLLERSERVICE']._serialized_start=16873 - _globals['_CONTROLLERSERVICE']._serialized_end=19462 - _globals['_WORKERSERVICE']._serialized_start=19465 - _globals['_WORKERSERVICE']._serialized_end=20070 -# @@protoc_insertion_point(module_scope) diff --git a/lib/iris/src/iris/rpc/cluster_pb2.pyi b/lib/iris/src/iris/rpc/cluster_pb2.pyi deleted file mode 100644 index 0ec38b5da0..0000000000 --- a/lib/iris/src/iris/rpc/cluster_pb2.pyi +++ /dev/null @@ -1,1159 +0,0 @@ -from . import time_pb2 as _time_pb2 -from . import vm_pb2 as _vm_pb2 -from . import logging_pb2 as _logging_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from collections.abc import Iterable as _Iterable, Mapping as _Mapping -from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class JobState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - JOB_STATE_UNSPECIFIED: _ClassVar[JobState] - JOB_STATE_PENDING: _ClassVar[JobState] - JOB_STATE_BUILDING: _ClassVar[JobState] - JOB_STATE_RUNNING: _ClassVar[JobState] - JOB_STATE_SUCCEEDED: _ClassVar[JobState] - JOB_STATE_FAILED: _ClassVar[JobState] - JOB_STATE_KILLED: _ClassVar[JobState] - JOB_STATE_WORKER_FAILED: _ClassVar[JobState] - JOB_STATE_UNSCHEDULABLE: _ClassVar[JobState] - -class TaskState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - TASK_STATE_UNSPECIFIED: _ClassVar[TaskState] - TASK_STATE_PENDING: _ClassVar[TaskState] - TASK_STATE_BUILDING: _ClassVar[TaskState] - TASK_STATE_RUNNING: _ClassVar[TaskState] - TASK_STATE_SUCCEEDED: _ClassVar[TaskState] - TASK_STATE_FAILED: _ClassVar[TaskState] - TASK_STATE_KILLED: _ClassVar[TaskState] - TASK_STATE_WORKER_FAILED: _ClassVar[TaskState] - TASK_STATE_UNSCHEDULABLE: _ClassVar[TaskState] - TASK_STATE_ASSIGNED: _ClassVar[TaskState] - -class ConstraintOp(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - CONSTRAINT_OP_EQ: _ClassVar[ConstraintOp] - CONSTRAINT_OP_NE: _ClassVar[ConstraintOp] - CONSTRAINT_OP_EXISTS: _ClassVar[ConstraintOp] - CONSTRAINT_OP_NOT_EXISTS: _ClassVar[ConstraintOp] - CONSTRAINT_OP_GT: _ClassVar[ConstraintOp] - CONSTRAINT_OP_GE: _ClassVar[ConstraintOp] - CONSTRAINT_OP_LT: _ClassVar[ConstraintOp] - CONSTRAINT_OP_LE: _ClassVar[ConstraintOp] - CONSTRAINT_OP_IN: _ClassVar[ConstraintOp] -JOB_STATE_UNSPECIFIED: JobState -JOB_STATE_PENDING: JobState -JOB_STATE_BUILDING: JobState -JOB_STATE_RUNNING: JobState -JOB_STATE_SUCCEEDED: JobState -JOB_STATE_FAILED: JobState -JOB_STATE_KILLED: JobState -JOB_STATE_WORKER_FAILED: JobState -JOB_STATE_UNSCHEDULABLE: JobState -TASK_STATE_UNSPECIFIED: TaskState -TASK_STATE_PENDING: TaskState -TASK_STATE_BUILDING: TaskState -TASK_STATE_RUNNING: TaskState -TASK_STATE_SUCCEEDED: TaskState -TASK_STATE_FAILED: TaskState -TASK_STATE_KILLED: TaskState -TASK_STATE_WORKER_FAILED: TaskState -TASK_STATE_UNSCHEDULABLE: TaskState -TASK_STATE_ASSIGNED: TaskState -CONSTRAINT_OP_EQ: ConstraintOp -CONSTRAINT_OP_NE: ConstraintOp -CONSTRAINT_OP_EXISTS: ConstraintOp -CONSTRAINT_OP_NOT_EXISTS: ConstraintOp -CONSTRAINT_OP_GT: ConstraintOp -CONSTRAINT_OP_GE: ConstraintOp -CONSTRAINT_OP_LT: ConstraintOp -CONSTRAINT_OP_LE: ConstraintOp -CONSTRAINT_OP_IN: ConstraintOp - -class Empty(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class LoginRequest(_message.Message): - __slots__ = ("identity_token",) - IDENTITY_TOKEN_FIELD_NUMBER: _ClassVar[int] - identity_token: str - def __init__(self, identity_token: _Optional[str] = ...) -> None: ... - -class LoginResponse(_message.Message): - __slots__ = ("token", "key_id", "user_id") - TOKEN_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - token: str - key_id: str - user_id: str - def __init__(self, token: _Optional[str] = ..., key_id: _Optional[str] = ..., user_id: _Optional[str] = ...) -> None: ... - -class GetAuthInfoRequest(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class GetAuthInfoResponse(_message.Message): - __slots__ = ("provider", "gcp_project_id") - PROVIDER_FIELD_NUMBER: _ClassVar[int] - GCP_PROJECT_ID_FIELD_NUMBER: _ClassVar[int] - provider: str - gcp_project_id: str - def __init__(self, provider: _Optional[str] = ..., gcp_project_id: _Optional[str] = ...) -> None: ... - -class CreateApiKeyRequest(_message.Message): - __slots__ = ("user_id", "name", "ttl_ms") - USER_ID_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - TTL_MS_FIELD_NUMBER: _ClassVar[int] - user_id: str - name: str - ttl_ms: int - def __init__(self, user_id: _Optional[str] = ..., name: _Optional[str] = ..., ttl_ms: _Optional[int] = ...) -> None: ... - -class CreateApiKeyResponse(_message.Message): - __slots__ = ("key_id", "token", "key_prefix") - KEY_ID_FIELD_NUMBER: _ClassVar[int] - TOKEN_FIELD_NUMBER: _ClassVar[int] - KEY_PREFIX_FIELD_NUMBER: _ClassVar[int] - key_id: str - token: str - key_prefix: str - def __init__(self, key_id: _Optional[str] = ..., token: _Optional[str] = ..., key_prefix: _Optional[str] = ...) -> None: ... - -class RevokeApiKeyRequest(_message.Message): - __slots__ = ("key_id",) - KEY_ID_FIELD_NUMBER: _ClassVar[int] - key_id: str - def __init__(self, key_id: _Optional[str] = ...) -> None: ... - -class ListApiKeysRequest(_message.Message): - __slots__ = ("user_id",) - USER_ID_FIELD_NUMBER: _ClassVar[int] - user_id: str - def __init__(self, user_id: _Optional[str] = ...) -> None: ... - -class ApiKeyInfo(_message.Message): - __slots__ = ("key_id", "key_prefix", "user_id", "name", "created_at_ms", "last_used_at_ms", "expires_at_ms", "revoked") - KEY_ID_FIELD_NUMBER: _ClassVar[int] - KEY_PREFIX_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - CREATED_AT_MS_FIELD_NUMBER: _ClassVar[int] - LAST_USED_AT_MS_FIELD_NUMBER: _ClassVar[int] - EXPIRES_AT_MS_FIELD_NUMBER: _ClassVar[int] - REVOKED_FIELD_NUMBER: _ClassVar[int] - key_id: str - key_prefix: str - user_id: str - name: str - created_at_ms: int - last_used_at_ms: int - expires_at_ms: int - revoked: bool - def __init__(self, key_id: _Optional[str] = ..., key_prefix: _Optional[str] = ..., user_id: _Optional[str] = ..., name: _Optional[str] = ..., created_at_ms: _Optional[int] = ..., last_used_at_ms: _Optional[int] = ..., expires_at_ms: _Optional[int] = ..., revoked: _Optional[bool] = ...) -> None: ... - -class ListApiKeysResponse(_message.Message): - __slots__ = ("keys",) - KEYS_FIELD_NUMBER: _ClassVar[int] - keys: _containers.RepeatedCompositeFieldContainer[ApiKeyInfo] - def __init__(self, keys: _Optional[_Iterable[_Union[ApiKeyInfo, _Mapping]]] = ...) -> None: ... - -class GetCurrentUserRequest(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class GetCurrentUserResponse(_message.Message): - __slots__ = ("user_id", "role", "display_name") - USER_ID_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] - DISPLAY_NAME_FIELD_NUMBER: _ClassVar[int] - user_id: str - role: str - display_name: str - def __init__(self, user_id: _Optional[str] = ..., role: _Optional[str] = ..., display_name: _Optional[str] = ...) -> None: ... - -class CpuProfile(_message.Message): - __slots__ = ("format", "rate_hz") - class Format(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - FORMAT_UNSPECIFIED: _ClassVar[CpuProfile.Format] - FLAMEGRAPH: _ClassVar[CpuProfile.Format] - SPEEDSCOPE: _ClassVar[CpuProfile.Format] - RAW: _ClassVar[CpuProfile.Format] - FORMAT_UNSPECIFIED: CpuProfile.Format - FLAMEGRAPH: CpuProfile.Format - SPEEDSCOPE: CpuProfile.Format - RAW: CpuProfile.Format - FORMAT_FIELD_NUMBER: _ClassVar[int] - RATE_HZ_FIELD_NUMBER: _ClassVar[int] - format: CpuProfile.Format - rate_hz: int - def __init__(self, format: _Optional[_Union[CpuProfile.Format, str]] = ..., rate_hz: _Optional[int] = ...) -> None: ... - -class MemoryProfile(_message.Message): - __slots__ = ("format", "leaks") - class Format(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - FORMAT_UNSPECIFIED: _ClassVar[MemoryProfile.Format] - FLAMEGRAPH: _ClassVar[MemoryProfile.Format] - TABLE: _ClassVar[MemoryProfile.Format] - STATS: _ClassVar[MemoryProfile.Format] - FORMAT_UNSPECIFIED: MemoryProfile.Format - FLAMEGRAPH: MemoryProfile.Format - TABLE: MemoryProfile.Format - STATS: MemoryProfile.Format - FORMAT_FIELD_NUMBER: _ClassVar[int] - LEAKS_FIELD_NUMBER: _ClassVar[int] - format: MemoryProfile.Format - leaks: bool - def __init__(self, format: _Optional[_Union[MemoryProfile.Format, str]] = ..., leaks: _Optional[bool] = ...) -> None: ... - -class ThreadsProfile(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class ProfileType(_message.Message): - __slots__ = ("cpu", "memory", "threads") - CPU_FIELD_NUMBER: _ClassVar[int] - MEMORY_FIELD_NUMBER: _ClassVar[int] - THREADS_FIELD_NUMBER: _ClassVar[int] - cpu: CpuProfile - memory: MemoryProfile - threads: ThreadsProfile - def __init__(self, cpu: _Optional[_Union[CpuProfile, _Mapping]] = ..., memory: _Optional[_Union[MemoryProfile, _Mapping]] = ..., threads: _Optional[_Union[ThreadsProfile, _Mapping]] = ...) -> None: ... - -class ProfileTaskRequest(_message.Message): - __slots__ = ("target", "duration_seconds", "profile_type") - TARGET_FIELD_NUMBER: _ClassVar[int] - DURATION_SECONDS_FIELD_NUMBER: _ClassVar[int] - PROFILE_TYPE_FIELD_NUMBER: _ClassVar[int] - target: str - duration_seconds: int - profile_type: ProfileType - def __init__(self, target: _Optional[str] = ..., duration_seconds: _Optional[int] = ..., profile_type: _Optional[_Union[ProfileType, _Mapping]] = ...) -> None: ... - -class ProfileTaskResponse(_message.Message): - __slots__ = ("profile_data", "error") - PROFILE_DATA_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - profile_data: bytes - error: str - def __init__(self, profile_data: _Optional[bytes] = ..., error: _Optional[str] = ...) -> None: ... - -class FetchLogsRequest(_message.Message): - __slots__ = ("source", "since_ms", "cursor", "substring", "max_lines", "tail", "min_level") - SOURCE_FIELD_NUMBER: _ClassVar[int] - SINCE_MS_FIELD_NUMBER: _ClassVar[int] - CURSOR_FIELD_NUMBER: _ClassVar[int] - SUBSTRING_FIELD_NUMBER: _ClassVar[int] - MAX_LINES_FIELD_NUMBER: _ClassVar[int] - TAIL_FIELD_NUMBER: _ClassVar[int] - MIN_LEVEL_FIELD_NUMBER: _ClassVar[int] - source: str - since_ms: int - cursor: int - substring: str - max_lines: int - tail: bool - min_level: str - def __init__(self, source: _Optional[str] = ..., since_ms: _Optional[int] = ..., cursor: _Optional[int] = ..., substring: _Optional[str] = ..., max_lines: _Optional[int] = ..., tail: _Optional[bool] = ..., min_level: _Optional[str] = ...) -> None: ... - -class FetchLogsResponse(_message.Message): - __slots__ = ("entries", "cursor") - ENTRIES_FIELD_NUMBER: _ClassVar[int] - CURSOR_FIELD_NUMBER: _ClassVar[int] - entries: _containers.RepeatedCompositeFieldContainer[_logging_pb2.LogEntry] - cursor: int - def __init__(self, entries: _Optional[_Iterable[_Union[_logging_pb2.LogEntry, _Mapping]]] = ..., cursor: _Optional[int] = ...) -> None: ... - -class ProcessInfo(_message.Message): - __slots__ = ("hostname", "pid", "python_version", "uptime_ms", "memory_rss_bytes", "memory_vms_bytes", "cpu_percent", "thread_count", "open_fd_count", "memory_total_bytes", "cpu_count", "git_hash") - HOSTNAME_FIELD_NUMBER: _ClassVar[int] - PID_FIELD_NUMBER: _ClassVar[int] - PYTHON_VERSION_FIELD_NUMBER: _ClassVar[int] - UPTIME_MS_FIELD_NUMBER: _ClassVar[int] - MEMORY_RSS_BYTES_FIELD_NUMBER: _ClassVar[int] - MEMORY_VMS_BYTES_FIELD_NUMBER: _ClassVar[int] - CPU_PERCENT_FIELD_NUMBER: _ClassVar[int] - THREAD_COUNT_FIELD_NUMBER: _ClassVar[int] - OPEN_FD_COUNT_FIELD_NUMBER: _ClassVar[int] - MEMORY_TOTAL_BYTES_FIELD_NUMBER: _ClassVar[int] - CPU_COUNT_FIELD_NUMBER: _ClassVar[int] - GIT_HASH_FIELD_NUMBER: _ClassVar[int] - hostname: str - pid: int - python_version: str - uptime_ms: int - memory_rss_bytes: int - memory_vms_bytes: int - cpu_percent: float - thread_count: int - open_fd_count: int - memory_total_bytes: int - cpu_count: int - git_hash: str - def __init__(self, hostname: _Optional[str] = ..., pid: _Optional[int] = ..., python_version: _Optional[str] = ..., uptime_ms: _Optional[int] = ..., memory_rss_bytes: _Optional[int] = ..., memory_vms_bytes: _Optional[int] = ..., cpu_percent: _Optional[float] = ..., thread_count: _Optional[int] = ..., open_fd_count: _Optional[int] = ..., memory_total_bytes: _Optional[int] = ..., cpu_count: _Optional[int] = ..., git_hash: _Optional[str] = ...) -> None: ... - -class GetProcessStatusRequest(_message.Message): - __slots__ = ("max_log_lines", "log_substring", "min_log_level", "target") - MAX_LOG_LINES_FIELD_NUMBER: _ClassVar[int] - LOG_SUBSTRING_FIELD_NUMBER: _ClassVar[int] - MIN_LOG_LEVEL_FIELD_NUMBER: _ClassVar[int] - TARGET_FIELD_NUMBER: _ClassVar[int] - max_log_lines: int - log_substring: str - min_log_level: str - target: str - def __init__(self, max_log_lines: _Optional[int] = ..., log_substring: _Optional[str] = ..., min_log_level: _Optional[str] = ..., target: _Optional[str] = ...) -> None: ... - -class GetProcessStatusResponse(_message.Message): - __slots__ = ("process_info", "log_entries") - PROCESS_INFO_FIELD_NUMBER: _ClassVar[int] - LOG_ENTRIES_FIELD_NUMBER: _ClassVar[int] - process_info: ProcessInfo - log_entries: _containers.RepeatedCompositeFieldContainer[_logging_pb2.LogEntry] - def __init__(self, process_info: _Optional[_Union[ProcessInfo, _Mapping]] = ..., log_entries: _Optional[_Iterable[_Union[_logging_pb2.LogEntry, _Mapping]]] = ...) -> None: ... - -class TaskStatus(_message.Message): - __slots__ = ("task_id", "state", "worker_id", "worker_address", "exit_code", "error", "started_at", "finished_at", "ports", "resource_usage", "build_metrics", "current_attempt_id", "attempts", "pending_reason", "can_be_scheduled") - class PortsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: int - def __init__(self, key: _Optional[str] = ..., value: _Optional[int] = ...) -> None: ... - TASK_ID_FIELD_NUMBER: _ClassVar[int] - STATE_FIELD_NUMBER: _ClassVar[int] - WORKER_ID_FIELD_NUMBER: _ClassVar[int] - WORKER_ADDRESS_FIELD_NUMBER: _ClassVar[int] - EXIT_CODE_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - STARTED_AT_FIELD_NUMBER: _ClassVar[int] - FINISHED_AT_FIELD_NUMBER: _ClassVar[int] - PORTS_FIELD_NUMBER: _ClassVar[int] - RESOURCE_USAGE_FIELD_NUMBER: _ClassVar[int] - BUILD_METRICS_FIELD_NUMBER: _ClassVar[int] - CURRENT_ATTEMPT_ID_FIELD_NUMBER: _ClassVar[int] - ATTEMPTS_FIELD_NUMBER: _ClassVar[int] - PENDING_REASON_FIELD_NUMBER: _ClassVar[int] - CAN_BE_SCHEDULED_FIELD_NUMBER: _ClassVar[int] - task_id: str - state: TaskState - worker_id: str - worker_address: str - exit_code: int - error: str - started_at: _time_pb2.Timestamp - finished_at: _time_pb2.Timestamp - ports: _containers.ScalarMap[str, int] - resource_usage: ResourceUsage - build_metrics: BuildMetrics - current_attempt_id: int - attempts: _containers.RepeatedCompositeFieldContainer[TaskAttempt] - pending_reason: str - can_be_scheduled: bool - def __init__(self, task_id: _Optional[str] = ..., state: _Optional[_Union[TaskState, str]] = ..., worker_id: _Optional[str] = ..., worker_address: _Optional[str] = ..., exit_code: _Optional[int] = ..., error: _Optional[str] = ..., started_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., finished_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., ports: _Optional[_Mapping[str, int]] = ..., resource_usage: _Optional[_Union[ResourceUsage, _Mapping]] = ..., build_metrics: _Optional[_Union[BuildMetrics, _Mapping]] = ..., current_attempt_id: _Optional[int] = ..., attempts: _Optional[_Iterable[_Union[TaskAttempt, _Mapping]]] = ..., pending_reason: _Optional[str] = ..., can_be_scheduled: _Optional[bool] = ...) -> None: ... - -class TaskAttempt(_message.Message): - __slots__ = ("attempt_id", "worker_id", "state", "exit_code", "error", "started_at", "finished_at", "is_worker_failure") - ATTEMPT_ID_FIELD_NUMBER: _ClassVar[int] - WORKER_ID_FIELD_NUMBER: _ClassVar[int] - STATE_FIELD_NUMBER: _ClassVar[int] - EXIT_CODE_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - STARTED_AT_FIELD_NUMBER: _ClassVar[int] - FINISHED_AT_FIELD_NUMBER: _ClassVar[int] - IS_WORKER_FAILURE_FIELD_NUMBER: _ClassVar[int] - attempt_id: int - worker_id: str - state: TaskState - exit_code: int - error: str - started_at: _time_pb2.Timestamp - finished_at: _time_pb2.Timestamp - is_worker_failure: bool - def __init__(self, attempt_id: _Optional[int] = ..., worker_id: _Optional[str] = ..., state: _Optional[_Union[TaskState, str]] = ..., exit_code: _Optional[int] = ..., error: _Optional[str] = ..., started_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., finished_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., is_worker_failure: _Optional[bool] = ...) -> None: ... - -class ResourceUsage(_message.Message): - __slots__ = ("memory_mb", "disk_mb", "cpu_millicores", "memory_peak_mb", "cpu_percent", "process_count") - MEMORY_MB_FIELD_NUMBER: _ClassVar[int] - DISK_MB_FIELD_NUMBER: _ClassVar[int] - CPU_MILLICORES_FIELD_NUMBER: _ClassVar[int] - MEMORY_PEAK_MB_FIELD_NUMBER: _ClassVar[int] - CPU_PERCENT_FIELD_NUMBER: _ClassVar[int] - PROCESS_COUNT_FIELD_NUMBER: _ClassVar[int] - memory_mb: int - disk_mb: int - cpu_millicores: int - memory_peak_mb: int - cpu_percent: int - process_count: int - def __init__(self, memory_mb: _Optional[int] = ..., disk_mb: _Optional[int] = ..., cpu_millicores: _Optional[int] = ..., memory_peak_mb: _Optional[int] = ..., cpu_percent: _Optional[int] = ..., process_count: _Optional[int] = ...) -> None: ... - -class WorkerResourceSnapshot(_message.Message): - __slots__ = ("timestamp", "cpu_percent", "memory_used_bytes", "memory_total_bytes", "disk_used_bytes", "disk_total_bytes", "running_task_count", "total_process_count", "net_recv_bps", "net_sent_bps") - TIMESTAMP_FIELD_NUMBER: _ClassVar[int] - CPU_PERCENT_FIELD_NUMBER: _ClassVar[int] - MEMORY_USED_BYTES_FIELD_NUMBER: _ClassVar[int] - MEMORY_TOTAL_BYTES_FIELD_NUMBER: _ClassVar[int] - DISK_USED_BYTES_FIELD_NUMBER: _ClassVar[int] - DISK_TOTAL_BYTES_FIELD_NUMBER: _ClassVar[int] - RUNNING_TASK_COUNT_FIELD_NUMBER: _ClassVar[int] - TOTAL_PROCESS_COUNT_FIELD_NUMBER: _ClassVar[int] - NET_RECV_BPS_FIELD_NUMBER: _ClassVar[int] - NET_SENT_BPS_FIELD_NUMBER: _ClassVar[int] - timestamp: _time_pb2.Timestamp - cpu_percent: int - memory_used_bytes: int - memory_total_bytes: int - disk_used_bytes: int - disk_total_bytes: int - running_task_count: int - total_process_count: int - net_recv_bps: int - net_sent_bps: int - def __init__(self, timestamp: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., cpu_percent: _Optional[int] = ..., memory_used_bytes: _Optional[int] = ..., memory_total_bytes: _Optional[int] = ..., disk_used_bytes: _Optional[int] = ..., disk_total_bytes: _Optional[int] = ..., running_task_count: _Optional[int] = ..., total_process_count: _Optional[int] = ..., net_recv_bps: _Optional[int] = ..., net_sent_bps: _Optional[int] = ...) -> None: ... - -class BuildMetrics(_message.Message): - __slots__ = ("build_started", "build_finished", "from_cache", "image_tag") - BUILD_STARTED_FIELD_NUMBER: _ClassVar[int] - BUILD_FINISHED_FIELD_NUMBER: _ClassVar[int] - FROM_CACHE_FIELD_NUMBER: _ClassVar[int] - IMAGE_TAG_FIELD_NUMBER: _ClassVar[int] - build_started: _time_pb2.Timestamp - build_finished: _time_pb2.Timestamp - from_cache: bool - image_tag: str - def __init__(self, build_started: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., build_finished: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., from_cache: _Optional[bool] = ..., image_tag: _Optional[str] = ...) -> None: ... - -class JobStatus(_message.Message): - __slots__ = ("job_id", "state", "exit_code", "error", "started_at", "finished_at", "ports", "resource_usage", "status_message", "build_metrics", "failure_count", "preemption_count", "tasks", "name", "submitted_at", "resources", "task_state_counts", "task_count", "completed_count", "pending_reason") - class PortsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: int - def __init__(self, key: _Optional[str] = ..., value: _Optional[int] = ...) -> None: ... - class TaskStateCountsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: int - def __init__(self, key: _Optional[str] = ..., value: _Optional[int] = ...) -> None: ... - JOB_ID_FIELD_NUMBER: _ClassVar[int] - STATE_FIELD_NUMBER: _ClassVar[int] - EXIT_CODE_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - STARTED_AT_FIELD_NUMBER: _ClassVar[int] - FINISHED_AT_FIELD_NUMBER: _ClassVar[int] - PORTS_FIELD_NUMBER: _ClassVar[int] - RESOURCE_USAGE_FIELD_NUMBER: _ClassVar[int] - STATUS_MESSAGE_FIELD_NUMBER: _ClassVar[int] - BUILD_METRICS_FIELD_NUMBER: _ClassVar[int] - FAILURE_COUNT_FIELD_NUMBER: _ClassVar[int] - PREEMPTION_COUNT_FIELD_NUMBER: _ClassVar[int] - TASKS_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - SUBMITTED_AT_FIELD_NUMBER: _ClassVar[int] - RESOURCES_FIELD_NUMBER: _ClassVar[int] - TASK_STATE_COUNTS_FIELD_NUMBER: _ClassVar[int] - TASK_COUNT_FIELD_NUMBER: _ClassVar[int] - COMPLETED_COUNT_FIELD_NUMBER: _ClassVar[int] - PENDING_REASON_FIELD_NUMBER: _ClassVar[int] - job_id: str - state: JobState - exit_code: int - error: str - started_at: _time_pb2.Timestamp - finished_at: _time_pb2.Timestamp - ports: _containers.ScalarMap[str, int] - resource_usage: ResourceUsage - status_message: str - build_metrics: BuildMetrics - failure_count: int - preemption_count: int - tasks: _containers.RepeatedCompositeFieldContainer[TaskStatus] - name: str - submitted_at: _time_pb2.Timestamp - resources: ResourceSpecProto - task_state_counts: _containers.ScalarMap[str, int] - task_count: int - completed_count: int - pending_reason: str - def __init__(self, job_id: _Optional[str] = ..., state: _Optional[_Union[JobState, str]] = ..., exit_code: _Optional[int] = ..., error: _Optional[str] = ..., started_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., finished_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., ports: _Optional[_Mapping[str, int]] = ..., resource_usage: _Optional[_Union[ResourceUsage, _Mapping]] = ..., status_message: _Optional[str] = ..., build_metrics: _Optional[_Union[BuildMetrics, _Mapping]] = ..., failure_count: _Optional[int] = ..., preemption_count: _Optional[int] = ..., tasks: _Optional[_Iterable[_Union[TaskStatus, _Mapping]]] = ..., name: _Optional[str] = ..., submitted_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., resources: _Optional[_Union[ResourceSpecProto, _Mapping]] = ..., task_state_counts: _Optional[_Mapping[str, int]] = ..., task_count: _Optional[int] = ..., completed_count: _Optional[int] = ..., pending_reason: _Optional[str] = ...) -> None: ... - -class ReservationEntry(_message.Message): - __slots__ = ("resources", "constraints") - RESOURCES_FIELD_NUMBER: _ClassVar[int] - CONSTRAINTS_FIELD_NUMBER: _ClassVar[int] - resources: ResourceSpecProto - constraints: _containers.RepeatedCompositeFieldContainer[Constraint] - def __init__(self, resources: _Optional[_Union[ResourceSpecProto, _Mapping]] = ..., constraints: _Optional[_Iterable[_Union[Constraint, _Mapping]]] = ...) -> None: ... - -class ReservationConfig(_message.Message): - __slots__ = ("entries",) - ENTRIES_FIELD_NUMBER: _ClassVar[int] - entries: _containers.RepeatedCompositeFieldContainer[ReservationEntry] - def __init__(self, entries: _Optional[_Iterable[_Union[ReservationEntry, _Mapping]]] = ...) -> None: ... - -class DeviceConfig(_message.Message): - __slots__ = ("cpu", "gpu", "tpu") - CPU_FIELD_NUMBER: _ClassVar[int] - GPU_FIELD_NUMBER: _ClassVar[int] - TPU_FIELD_NUMBER: _ClassVar[int] - cpu: CpuDevice - gpu: GpuDevice - tpu: TpuDevice - def __init__(self, cpu: _Optional[_Union[CpuDevice, _Mapping]] = ..., gpu: _Optional[_Union[GpuDevice, _Mapping]] = ..., tpu: _Optional[_Union[TpuDevice, _Mapping]] = ...) -> None: ... - -class CpuDevice(_message.Message): - __slots__ = ("variant",) - VARIANT_FIELD_NUMBER: _ClassVar[int] - variant: str - def __init__(self, variant: _Optional[str] = ...) -> None: ... - -class GpuDevice(_message.Message): - __slots__ = ("variant", "count") - VARIANT_FIELD_NUMBER: _ClassVar[int] - COUNT_FIELD_NUMBER: _ClassVar[int] - variant: str - count: int - def __init__(self, variant: _Optional[str] = ..., count: _Optional[int] = ...) -> None: ... - -class TpuDevice(_message.Message): - __slots__ = ("variant", "topology", "count") - VARIANT_FIELD_NUMBER: _ClassVar[int] - TOPOLOGY_FIELD_NUMBER: _ClassVar[int] - COUNT_FIELD_NUMBER: _ClassVar[int] - variant: str - topology: str - count: int - def __init__(self, variant: _Optional[str] = ..., topology: _Optional[str] = ..., count: _Optional[int] = ...) -> None: ... - -class ResourceSpecProto(_message.Message): - __slots__ = ("cpu_millicores", "memory_bytes", "disk_bytes", "device") - CPU_MILLICORES_FIELD_NUMBER: _ClassVar[int] - MEMORY_BYTES_FIELD_NUMBER: _ClassVar[int] - DISK_BYTES_FIELD_NUMBER: _ClassVar[int] - DEVICE_FIELD_NUMBER: _ClassVar[int] - cpu_millicores: int - memory_bytes: int - disk_bytes: int - device: DeviceConfig - def __init__(self, cpu_millicores: _Optional[int] = ..., memory_bytes: _Optional[int] = ..., disk_bytes: _Optional[int] = ..., device: _Optional[_Union[DeviceConfig, _Mapping]] = ...) -> None: ... - -class EnvironmentConfig(_message.Message): - __slots__ = ("pip_packages", "env_vars", "extras", "python_version", "dockerfile") - class EnvVarsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - PIP_PACKAGES_FIELD_NUMBER: _ClassVar[int] - ENV_VARS_FIELD_NUMBER: _ClassVar[int] - EXTRAS_FIELD_NUMBER: _ClassVar[int] - PYTHON_VERSION_FIELD_NUMBER: _ClassVar[int] - DOCKERFILE_FIELD_NUMBER: _ClassVar[int] - pip_packages: _containers.RepeatedScalarFieldContainer[str] - env_vars: _containers.ScalarMap[str, str] - extras: _containers.RepeatedScalarFieldContainer[str] - python_version: str - dockerfile: str - def __init__(self, pip_packages: _Optional[_Iterable[str]] = ..., env_vars: _Optional[_Mapping[str, str]] = ..., extras: _Optional[_Iterable[str]] = ..., python_version: _Optional[str] = ..., dockerfile: _Optional[str] = ...) -> None: ... - -class CommandEntrypoint(_message.Message): - __slots__ = ("argv",) - ARGV_FIELD_NUMBER: _ClassVar[int] - argv: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, argv: _Optional[_Iterable[str]] = ...) -> None: ... - -class RuntimeEntrypoint(_message.Message): - __slots__ = ("setup_commands", "run_command", "workdir_files") - class WorkdirFilesEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: bytes - def __init__(self, key: _Optional[str] = ..., value: _Optional[bytes] = ...) -> None: ... - SETUP_COMMANDS_FIELD_NUMBER: _ClassVar[int] - RUN_COMMAND_FIELD_NUMBER: _ClassVar[int] - WORKDIR_FILES_FIELD_NUMBER: _ClassVar[int] - setup_commands: _containers.RepeatedScalarFieldContainer[str] - run_command: CommandEntrypoint - workdir_files: _containers.ScalarMap[str, bytes] - def __init__(self, setup_commands: _Optional[_Iterable[str]] = ..., run_command: _Optional[_Union[CommandEntrypoint, _Mapping]] = ..., workdir_files: _Optional[_Mapping[str, bytes]] = ...) -> None: ... - -class AttributeValue(_message.Message): - __slots__ = ("string_value", "int_value", "float_value") - STRING_VALUE_FIELD_NUMBER: _ClassVar[int] - INT_VALUE_FIELD_NUMBER: _ClassVar[int] - FLOAT_VALUE_FIELD_NUMBER: _ClassVar[int] - string_value: str - int_value: int - float_value: float - def __init__(self, string_value: _Optional[str] = ..., int_value: _Optional[int] = ..., float_value: _Optional[float] = ...) -> None: ... - -class Constraint(_message.Message): - __slots__ = ("key", "op", "value", "values") - KEY_FIELD_NUMBER: _ClassVar[int] - OP_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - VALUES_FIELD_NUMBER: _ClassVar[int] - key: str - op: ConstraintOp - value: AttributeValue - values: _containers.RepeatedCompositeFieldContainer[AttributeValue] - def __init__(self, key: _Optional[str] = ..., op: _Optional[_Union[ConstraintOp, str]] = ..., value: _Optional[_Union[AttributeValue, _Mapping]] = ..., values: _Optional[_Iterable[_Union[AttributeValue, _Mapping]]] = ...) -> None: ... - -class CoschedulingConfig(_message.Message): - __slots__ = ("group_by",) - GROUP_BY_FIELD_NUMBER: _ClassVar[int] - group_by: str - def __init__(self, group_by: _Optional[str] = ...) -> None: ... - -class WorkerMetadata(_message.Message): - __slots__ = ("hostname", "ip_address", "cpu_count", "memory_bytes", "disk_bytes", "device", "tpu_name", "tpu_worker_hostnames", "tpu_worker_id", "tpu_chips_per_host_bounds", "gpu_count", "gpu_name", "gpu_memory_mb", "gce_instance_name", "gce_zone", "attributes", "vm_address", "git_hash") - class AttributesEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: AttributeValue - def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AttributeValue, _Mapping]] = ...) -> None: ... - HOSTNAME_FIELD_NUMBER: _ClassVar[int] - IP_ADDRESS_FIELD_NUMBER: _ClassVar[int] - CPU_COUNT_FIELD_NUMBER: _ClassVar[int] - MEMORY_BYTES_FIELD_NUMBER: _ClassVar[int] - DISK_BYTES_FIELD_NUMBER: _ClassVar[int] - DEVICE_FIELD_NUMBER: _ClassVar[int] - TPU_NAME_FIELD_NUMBER: _ClassVar[int] - TPU_WORKER_HOSTNAMES_FIELD_NUMBER: _ClassVar[int] - TPU_WORKER_ID_FIELD_NUMBER: _ClassVar[int] - TPU_CHIPS_PER_HOST_BOUNDS_FIELD_NUMBER: _ClassVar[int] - GPU_COUNT_FIELD_NUMBER: _ClassVar[int] - GPU_NAME_FIELD_NUMBER: _ClassVar[int] - GPU_MEMORY_MB_FIELD_NUMBER: _ClassVar[int] - GCE_INSTANCE_NAME_FIELD_NUMBER: _ClassVar[int] - GCE_ZONE_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] - VM_ADDRESS_FIELD_NUMBER: _ClassVar[int] - GIT_HASH_FIELD_NUMBER: _ClassVar[int] - hostname: str - ip_address: str - cpu_count: int - memory_bytes: int - disk_bytes: int - device: DeviceConfig - tpu_name: str - tpu_worker_hostnames: str - tpu_worker_id: str - tpu_chips_per_host_bounds: str - gpu_count: int - gpu_name: str - gpu_memory_mb: int - gce_instance_name: str - gce_zone: str - attributes: _containers.MessageMap[str, AttributeValue] - vm_address: str - git_hash: str - def __init__(self, hostname: _Optional[str] = ..., ip_address: _Optional[str] = ..., cpu_count: _Optional[int] = ..., memory_bytes: _Optional[int] = ..., disk_bytes: _Optional[int] = ..., device: _Optional[_Union[DeviceConfig, _Mapping]] = ..., tpu_name: _Optional[str] = ..., tpu_worker_hostnames: _Optional[str] = ..., tpu_worker_id: _Optional[str] = ..., tpu_chips_per_host_bounds: _Optional[str] = ..., gpu_count: _Optional[int] = ..., gpu_name: _Optional[str] = ..., gpu_memory_mb: _Optional[int] = ..., gce_instance_name: _Optional[str] = ..., gce_zone: _Optional[str] = ..., attributes: _Optional[_Mapping[str, AttributeValue]] = ..., vm_address: _Optional[str] = ..., git_hash: _Optional[str] = ...) -> None: ... - -class Controller(_message.Message): - __slots__ = () - class JobSortField(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - JOB_SORT_FIELD_UNSPECIFIED: _ClassVar[Controller.JobSortField] - JOB_SORT_FIELD_DATE: _ClassVar[Controller.JobSortField] - JOB_SORT_FIELD_NAME: _ClassVar[Controller.JobSortField] - JOB_SORT_FIELD_STATE: _ClassVar[Controller.JobSortField] - JOB_SORT_FIELD_FAILURES: _ClassVar[Controller.JobSortField] - JOB_SORT_FIELD_PREEMPTIONS: _ClassVar[Controller.JobSortField] - JOB_SORT_FIELD_UNSPECIFIED: Controller.JobSortField - JOB_SORT_FIELD_DATE: Controller.JobSortField - JOB_SORT_FIELD_NAME: Controller.JobSortField - JOB_SORT_FIELD_STATE: Controller.JobSortField - JOB_SORT_FIELD_FAILURES: Controller.JobSortField - JOB_SORT_FIELD_PREEMPTIONS: Controller.JobSortField - class SortDirection(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - SORT_DIRECTION_UNSPECIFIED: _ClassVar[Controller.SortDirection] - SORT_DIRECTION_ASC: _ClassVar[Controller.SortDirection] - SORT_DIRECTION_DESC: _ClassVar[Controller.SortDirection] - SORT_DIRECTION_UNSPECIFIED: Controller.SortDirection - SORT_DIRECTION_ASC: Controller.SortDirection - SORT_DIRECTION_DESC: Controller.SortDirection - class LaunchJobRequest(_message.Message): - __slots__ = ("name", "entrypoint", "resources", "environment", "bundle_id", "bundle_blob", "scheduling_timeout", "ports", "max_task_failures", "max_retries_failure", "max_retries_preemption", "constraints", "coscheduling", "replicas", "timeout", "fail_if_exists", "reservation") - NAME_FIELD_NUMBER: _ClassVar[int] - ENTRYPOINT_FIELD_NUMBER: _ClassVar[int] - RESOURCES_FIELD_NUMBER: _ClassVar[int] - ENVIRONMENT_FIELD_NUMBER: _ClassVar[int] - BUNDLE_ID_FIELD_NUMBER: _ClassVar[int] - BUNDLE_BLOB_FIELD_NUMBER: _ClassVar[int] - SCHEDULING_TIMEOUT_FIELD_NUMBER: _ClassVar[int] - PORTS_FIELD_NUMBER: _ClassVar[int] - MAX_TASK_FAILURES_FIELD_NUMBER: _ClassVar[int] - MAX_RETRIES_FAILURE_FIELD_NUMBER: _ClassVar[int] - MAX_RETRIES_PREEMPTION_FIELD_NUMBER: _ClassVar[int] - CONSTRAINTS_FIELD_NUMBER: _ClassVar[int] - COSCHEDULING_FIELD_NUMBER: _ClassVar[int] - REPLICAS_FIELD_NUMBER: _ClassVar[int] - TIMEOUT_FIELD_NUMBER: _ClassVar[int] - FAIL_IF_EXISTS_FIELD_NUMBER: _ClassVar[int] - RESERVATION_FIELD_NUMBER: _ClassVar[int] - name: str - entrypoint: RuntimeEntrypoint - resources: ResourceSpecProto - environment: EnvironmentConfig - bundle_id: str - bundle_blob: bytes - scheduling_timeout: _time_pb2.Duration - ports: _containers.RepeatedScalarFieldContainer[str] - max_task_failures: int - max_retries_failure: int - max_retries_preemption: int - constraints: _containers.RepeatedCompositeFieldContainer[Constraint] - coscheduling: CoschedulingConfig - replicas: int - timeout: _time_pb2.Duration - fail_if_exists: bool - reservation: ReservationConfig - def __init__(self, name: _Optional[str] = ..., entrypoint: _Optional[_Union[RuntimeEntrypoint, _Mapping]] = ..., resources: _Optional[_Union[ResourceSpecProto, _Mapping]] = ..., environment: _Optional[_Union[EnvironmentConfig, _Mapping]] = ..., bundle_id: _Optional[str] = ..., bundle_blob: _Optional[bytes] = ..., scheduling_timeout: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ..., ports: _Optional[_Iterable[str]] = ..., max_task_failures: _Optional[int] = ..., max_retries_failure: _Optional[int] = ..., max_retries_preemption: _Optional[int] = ..., constraints: _Optional[_Iterable[_Union[Constraint, _Mapping]]] = ..., coscheduling: _Optional[_Union[CoschedulingConfig, _Mapping]] = ..., replicas: _Optional[int] = ..., timeout: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ..., fail_if_exists: _Optional[bool] = ..., reservation: _Optional[_Union[ReservationConfig, _Mapping]] = ...) -> None: ... - class LaunchJobResponse(_message.Message): - __slots__ = ("job_id",) - JOB_ID_FIELD_NUMBER: _ClassVar[int] - job_id: str - def __init__(self, job_id: _Optional[str] = ...) -> None: ... - class GetJobStatusRequest(_message.Message): - __slots__ = ("job_id",) - JOB_ID_FIELD_NUMBER: _ClassVar[int] - job_id: str - def __init__(self, job_id: _Optional[str] = ...) -> None: ... - class GetJobStatusResponse(_message.Message): - __slots__ = ("job", "request") - JOB_FIELD_NUMBER: _ClassVar[int] - REQUEST_FIELD_NUMBER: _ClassVar[int] - job: JobStatus - request: Controller.LaunchJobRequest - def __init__(self, job: _Optional[_Union[JobStatus, _Mapping]] = ..., request: _Optional[_Union[Controller.LaunchJobRequest, _Mapping]] = ...) -> None: ... - class TerminateJobRequest(_message.Message): - __slots__ = ("job_id",) - JOB_ID_FIELD_NUMBER: _ClassVar[int] - job_id: str - def __init__(self, job_id: _Optional[str] = ...) -> None: ... - class ListJobsRequest(_message.Message): - __slots__ = ("offset", "limit", "sort_field", "sort_direction", "name_filter", "state_filter") - OFFSET_FIELD_NUMBER: _ClassVar[int] - LIMIT_FIELD_NUMBER: _ClassVar[int] - SORT_FIELD_FIELD_NUMBER: _ClassVar[int] - SORT_DIRECTION_FIELD_NUMBER: _ClassVar[int] - NAME_FILTER_FIELD_NUMBER: _ClassVar[int] - STATE_FILTER_FIELD_NUMBER: _ClassVar[int] - offset: int - limit: int - sort_field: Controller.JobSortField - sort_direction: Controller.SortDirection - name_filter: str - state_filter: str - def __init__(self, offset: _Optional[int] = ..., limit: _Optional[int] = ..., sort_field: _Optional[_Union[Controller.JobSortField, str]] = ..., sort_direction: _Optional[_Union[Controller.SortDirection, str]] = ..., name_filter: _Optional[str] = ..., state_filter: _Optional[str] = ...) -> None: ... - class ListJobsResponse(_message.Message): - __slots__ = ("jobs", "total_count", "has_more") - JOBS_FIELD_NUMBER: _ClassVar[int] - TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int] - HAS_MORE_FIELD_NUMBER: _ClassVar[int] - jobs: _containers.RepeatedCompositeFieldContainer[JobStatus] - total_count: int - has_more: bool - def __init__(self, jobs: _Optional[_Iterable[_Union[JobStatus, _Mapping]]] = ..., total_count: _Optional[int] = ..., has_more: _Optional[bool] = ...) -> None: ... - class GetTaskStatusRequest(_message.Message): - __slots__ = ("task_id",) - TASK_ID_FIELD_NUMBER: _ClassVar[int] - task_id: str - def __init__(self, task_id: _Optional[str] = ...) -> None: ... - class GetTaskStatusResponse(_message.Message): - __slots__ = ("task",) - TASK_FIELD_NUMBER: _ClassVar[int] - task: TaskStatus - def __init__(self, task: _Optional[_Union[TaskStatus, _Mapping]] = ...) -> None: ... - class ListTasksRequest(_message.Message): - __slots__ = ("job_id",) - JOB_ID_FIELD_NUMBER: _ClassVar[int] - job_id: str - def __init__(self, job_id: _Optional[str] = ...) -> None: ... - class ListTasksResponse(_message.Message): - __slots__ = ("tasks",) - TASKS_FIELD_NUMBER: _ClassVar[int] - tasks: _containers.RepeatedCompositeFieldContainer[TaskStatus] - def __init__(self, tasks: _Optional[_Iterable[_Union[TaskStatus, _Mapping]]] = ...) -> None: ... - class WorkerInfo(_message.Message): - __slots__ = ("worker_id", "address", "metadata", "registered_at") - WORKER_ID_FIELD_NUMBER: _ClassVar[int] - ADDRESS_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - REGISTERED_AT_FIELD_NUMBER: _ClassVar[int] - worker_id: str - address: str - metadata: WorkerMetadata - registered_at: _time_pb2.Timestamp - def __init__(self, worker_id: _Optional[str] = ..., address: _Optional[str] = ..., metadata: _Optional[_Union[WorkerMetadata, _Mapping]] = ..., registered_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ...) -> None: ... - class WorkerTaskStatus(_message.Message): - __slots__ = ("task_id", "attempt_id", "state", "exit_code", "error", "finished_at", "resource_usage", "log_entries") - TASK_ID_FIELD_NUMBER: _ClassVar[int] - ATTEMPT_ID_FIELD_NUMBER: _ClassVar[int] - STATE_FIELD_NUMBER: _ClassVar[int] - EXIT_CODE_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - FINISHED_AT_FIELD_NUMBER: _ClassVar[int] - RESOURCE_USAGE_FIELD_NUMBER: _ClassVar[int] - LOG_ENTRIES_FIELD_NUMBER: _ClassVar[int] - task_id: str - attempt_id: int - state: TaskState - exit_code: int - error: str - finished_at: _time_pb2.Timestamp - resource_usage: ResourceUsage - log_entries: _containers.RepeatedCompositeFieldContainer[_logging_pb2.LogEntry] - def __init__(self, task_id: _Optional[str] = ..., attempt_id: _Optional[int] = ..., state: _Optional[_Union[TaskState, str]] = ..., exit_code: _Optional[int] = ..., error: _Optional[str] = ..., finished_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., resource_usage: _Optional[_Union[ResourceUsage, _Mapping]] = ..., log_entries: _Optional[_Iterable[_Union[_logging_pb2.LogEntry, _Mapping]]] = ...) -> None: ... - class WorkerHealthStatus(_message.Message): - __slots__ = ("worker_id", "healthy", "consecutive_failures", "last_heartbeat", "running_job_ids", "address", "metadata", "status_message") - WORKER_ID_FIELD_NUMBER: _ClassVar[int] - HEALTHY_FIELD_NUMBER: _ClassVar[int] - CONSECUTIVE_FAILURES_FIELD_NUMBER: _ClassVar[int] - LAST_HEARTBEAT_FIELD_NUMBER: _ClassVar[int] - RUNNING_JOB_IDS_FIELD_NUMBER: _ClassVar[int] - ADDRESS_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - STATUS_MESSAGE_FIELD_NUMBER: _ClassVar[int] - worker_id: str - healthy: bool - consecutive_failures: int - last_heartbeat: _time_pb2.Timestamp - running_job_ids: _containers.RepeatedScalarFieldContainer[str] - address: str - metadata: WorkerMetadata - status_message: str - def __init__(self, worker_id: _Optional[str] = ..., healthy: _Optional[bool] = ..., consecutive_failures: _Optional[int] = ..., last_heartbeat: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., running_job_ids: _Optional[_Iterable[str]] = ..., address: _Optional[str] = ..., metadata: _Optional[_Union[WorkerMetadata, _Mapping]] = ..., status_message: _Optional[str] = ...) -> None: ... - class ListWorkersRequest(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - class ListWorkersResponse(_message.Message): - __slots__ = ("workers",) - WORKERS_FIELD_NUMBER: _ClassVar[int] - workers: _containers.RepeatedCompositeFieldContainer[Controller.WorkerHealthStatus] - def __init__(self, workers: _Optional[_Iterable[_Union[Controller.WorkerHealthStatus, _Mapping]]] = ...) -> None: ... - class RegisterRequest(_message.Message): - __slots__ = ("address", "metadata", "worker_id") - ADDRESS_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - WORKER_ID_FIELD_NUMBER: _ClassVar[int] - address: str - metadata: WorkerMetadata - worker_id: str - def __init__(self, address: _Optional[str] = ..., metadata: _Optional[_Union[WorkerMetadata, _Mapping]] = ..., worker_id: _Optional[str] = ...) -> None: ... - class RegisterResponse(_message.Message): - __slots__ = ("worker_id", "accepted") - WORKER_ID_FIELD_NUMBER: _ClassVar[int] - ACCEPTED_FIELD_NUMBER: _ClassVar[int] - worker_id: str - accepted: bool - def __init__(self, worker_id: _Optional[str] = ..., accepted: _Optional[bool] = ...) -> None: ... - class Endpoint(_message.Message): - __slots__ = ("endpoint_id", "name", "address", "task_id", "metadata") - class MetadataEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - ENDPOINT_ID_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - ADDRESS_FIELD_NUMBER: _ClassVar[int] - TASK_ID_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - endpoint_id: str - name: str - address: str - task_id: str - metadata: _containers.ScalarMap[str, str] - def __init__(self, endpoint_id: _Optional[str] = ..., name: _Optional[str] = ..., address: _Optional[str] = ..., task_id: _Optional[str] = ..., metadata: _Optional[_Mapping[str, str]] = ...) -> None: ... - class RegisterEndpointRequest(_message.Message): - __slots__ = ("name", "address", "task_id", "metadata", "attempt_id", "endpoint_id") - class MetadataEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - NAME_FIELD_NUMBER: _ClassVar[int] - ADDRESS_FIELD_NUMBER: _ClassVar[int] - TASK_ID_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - ATTEMPT_ID_FIELD_NUMBER: _ClassVar[int] - ENDPOINT_ID_FIELD_NUMBER: _ClassVar[int] - name: str - address: str - task_id: str - metadata: _containers.ScalarMap[str, str] - attempt_id: int - endpoint_id: str - def __init__(self, name: _Optional[str] = ..., address: _Optional[str] = ..., task_id: _Optional[str] = ..., metadata: _Optional[_Mapping[str, str]] = ..., attempt_id: _Optional[int] = ..., endpoint_id: _Optional[str] = ...) -> None: ... - class RegisterEndpointResponse(_message.Message): - __slots__ = ("endpoint_id",) - ENDPOINT_ID_FIELD_NUMBER: _ClassVar[int] - endpoint_id: str - def __init__(self, endpoint_id: _Optional[str] = ...) -> None: ... - class UnregisterEndpointRequest(_message.Message): - __slots__ = ("endpoint_id",) - ENDPOINT_ID_FIELD_NUMBER: _ClassVar[int] - endpoint_id: str - def __init__(self, endpoint_id: _Optional[str] = ...) -> None: ... - class ListEndpointsRequest(_message.Message): - __slots__ = ("prefix", "exact") - PREFIX_FIELD_NUMBER: _ClassVar[int] - EXACT_FIELD_NUMBER: _ClassVar[int] - prefix: str - exact: bool - def __init__(self, prefix: _Optional[str] = ..., exact: _Optional[bool] = ...) -> None: ... - class ListEndpointsResponse(_message.Message): - __slots__ = ("endpoints",) - ENDPOINTS_FIELD_NUMBER: _ClassVar[int] - endpoints: _containers.RepeatedCompositeFieldContainer[Controller.Endpoint] - def __init__(self, endpoints: _Optional[_Iterable[_Union[Controller.Endpoint, _Mapping]]] = ...) -> None: ... - class GetAutoscalerStatusRequest(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - class GetAutoscalerStatusResponse(_message.Message): - __slots__ = ("status",) - STATUS_FIELD_NUMBER: _ClassVar[int] - status: _vm_pb2.AutoscalerStatus - def __init__(self, status: _Optional[_Union[_vm_pb2.AutoscalerStatus, _Mapping]] = ...) -> None: ... - class TransactionAction(_message.Message): - __slots__ = ("timestamp", "action", "entity_id", "details") - TIMESTAMP_FIELD_NUMBER: _ClassVar[int] - ACTION_FIELD_NUMBER: _ClassVar[int] - ENTITY_ID_FIELD_NUMBER: _ClassVar[int] - DETAILS_FIELD_NUMBER: _ClassVar[int] - timestamp: _time_pb2.Timestamp - action: str - entity_id: str - details: str - def __init__(self, timestamp: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., action: _Optional[str] = ..., entity_id: _Optional[str] = ..., details: _Optional[str] = ...) -> None: ... - class GetTransactionsRequest(_message.Message): - __slots__ = ("limit",) - LIMIT_FIELD_NUMBER: _ClassVar[int] - limit: int - def __init__(self, limit: _Optional[int] = ...) -> None: ... - class GetTransactionsResponse(_message.Message): - __slots__ = ("actions",) - ACTIONS_FIELD_NUMBER: _ClassVar[int] - actions: _containers.RepeatedCompositeFieldContainer[Controller.TransactionAction] - def __init__(self, actions: _Optional[_Iterable[_Union[Controller.TransactionAction, _Mapping]]] = ...) -> None: ... - class BeginCheckpointRequest(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - class BeginCheckpointResponse(_message.Message): - __slots__ = ("checkpoint_path", "created_at", "job_count", "task_count", "worker_count") - CHECKPOINT_PATH_FIELD_NUMBER: _ClassVar[int] - CREATED_AT_FIELD_NUMBER: _ClassVar[int] - JOB_COUNT_FIELD_NUMBER: _ClassVar[int] - TASK_COUNT_FIELD_NUMBER: _ClassVar[int] - WORKER_COUNT_FIELD_NUMBER: _ClassVar[int] - checkpoint_path: str - created_at: _time_pb2.Timestamp - job_count: int - task_count: int - worker_count: int - def __init__(self, checkpoint_path: _Optional[str] = ..., created_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., job_count: _Optional[int] = ..., task_count: _Optional[int] = ..., worker_count: _Optional[int] = ...) -> None: ... - class UserSummary(_message.Message): - __slots__ = ("user", "task_state_counts", "job_state_counts") - class TaskStateCountsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: int - def __init__(self, key: _Optional[str] = ..., value: _Optional[int] = ...) -> None: ... - class JobStateCountsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: int - def __init__(self, key: _Optional[str] = ..., value: _Optional[int] = ...) -> None: ... - USER_FIELD_NUMBER: _ClassVar[int] - TASK_STATE_COUNTS_FIELD_NUMBER: _ClassVar[int] - JOB_STATE_COUNTS_FIELD_NUMBER: _ClassVar[int] - user: str - task_state_counts: _containers.ScalarMap[str, int] - job_state_counts: _containers.ScalarMap[str, int] - def __init__(self, user: _Optional[str] = ..., task_state_counts: _Optional[_Mapping[str, int]] = ..., job_state_counts: _Optional[_Mapping[str, int]] = ...) -> None: ... - class ListUsersRequest(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - class ListUsersResponse(_message.Message): - __slots__ = ("users",) - USERS_FIELD_NUMBER: _ClassVar[int] - users: _containers.RepeatedCompositeFieldContainer[Controller.UserSummary] - def __init__(self, users: _Optional[_Iterable[_Union[Controller.UserSummary, _Mapping]]] = ...) -> None: ... - class GetTaskLogsRequest(_message.Message): - __slots__ = ("id", "include_children", "since_ms", "max_total_lines", "substring", "attempt_id", "min_level", "cursor", "tail") - ID_FIELD_NUMBER: _ClassVar[int] - INCLUDE_CHILDREN_FIELD_NUMBER: _ClassVar[int] - SINCE_MS_FIELD_NUMBER: _ClassVar[int] - MAX_TOTAL_LINES_FIELD_NUMBER: _ClassVar[int] - SUBSTRING_FIELD_NUMBER: _ClassVar[int] - ATTEMPT_ID_FIELD_NUMBER: _ClassVar[int] - MIN_LEVEL_FIELD_NUMBER: _ClassVar[int] - CURSOR_FIELD_NUMBER: _ClassVar[int] - TAIL_FIELD_NUMBER: _ClassVar[int] - id: str - include_children: bool - since_ms: int - max_total_lines: int - substring: str - attempt_id: int - min_level: str - cursor: int - tail: bool - def __init__(self, id: _Optional[str] = ..., include_children: _Optional[bool] = ..., since_ms: _Optional[int] = ..., max_total_lines: _Optional[int] = ..., substring: _Optional[str] = ..., attempt_id: _Optional[int] = ..., min_level: _Optional[str] = ..., cursor: _Optional[int] = ..., tail: _Optional[bool] = ...) -> None: ... - class TaskLogBatch(_message.Message): - __slots__ = ("task_id", "logs", "error", "worker_id") - TASK_ID_FIELD_NUMBER: _ClassVar[int] - LOGS_FIELD_NUMBER: _ClassVar[int] - ERROR_FIELD_NUMBER: _ClassVar[int] - WORKER_ID_FIELD_NUMBER: _ClassVar[int] - task_id: str - logs: _containers.RepeatedCompositeFieldContainer[_logging_pb2.LogEntry] - error: str - worker_id: str - def __init__(self, task_id: _Optional[str] = ..., logs: _Optional[_Iterable[_Union[_logging_pb2.LogEntry, _Mapping]]] = ..., error: _Optional[str] = ..., worker_id: _Optional[str] = ...) -> None: ... - class GetTaskLogsResponse(_message.Message): - __slots__ = ("task_logs", "truncated", "child_job_statuses", "cursor") - TASK_LOGS_FIELD_NUMBER: _ClassVar[int] - TRUNCATED_FIELD_NUMBER: _ClassVar[int] - CHILD_JOB_STATUSES_FIELD_NUMBER: _ClassVar[int] - CURSOR_FIELD_NUMBER: _ClassVar[int] - task_logs: _containers.RepeatedCompositeFieldContainer[Controller.TaskLogBatch] - truncated: bool - child_job_statuses: _containers.RepeatedCompositeFieldContainer[JobStatus] - cursor: int - def __init__(self, task_logs: _Optional[_Iterable[_Union[Controller.TaskLogBatch, _Mapping]]] = ..., truncated: _Optional[bool] = ..., child_job_statuses: _Optional[_Iterable[_Union[JobStatus, _Mapping]]] = ..., cursor: _Optional[int] = ...) -> None: ... - class GetWorkerStatusRequest(_message.Message): - __slots__ = ("id",) - ID_FIELD_NUMBER: _ClassVar[int] - id: str - def __init__(self, id: _Optional[str] = ...) -> None: ... - class GetWorkerStatusResponse(_message.Message): - __slots__ = ("vm", "scale_group", "worker", "bootstrap_logs", "worker_log_entries", "recent_tasks", "current_resources", "resource_history") - VM_FIELD_NUMBER: _ClassVar[int] - SCALE_GROUP_FIELD_NUMBER: _ClassVar[int] - WORKER_FIELD_NUMBER: _ClassVar[int] - BOOTSTRAP_LOGS_FIELD_NUMBER: _ClassVar[int] - WORKER_LOG_ENTRIES_FIELD_NUMBER: _ClassVar[int] - RECENT_TASKS_FIELD_NUMBER: _ClassVar[int] - CURRENT_RESOURCES_FIELD_NUMBER: _ClassVar[int] - RESOURCE_HISTORY_FIELD_NUMBER: _ClassVar[int] - vm: _vm_pb2.VmInfo - scale_group: str - worker: Controller.WorkerHealthStatus - bootstrap_logs: str - worker_log_entries: _containers.RepeatedCompositeFieldContainer[_logging_pb2.LogEntry] - recent_tasks: _containers.RepeatedCompositeFieldContainer[TaskStatus] - current_resources: WorkerResourceSnapshot - resource_history: _containers.RepeatedCompositeFieldContainer[WorkerResourceSnapshot] - def __init__(self, vm: _Optional[_Union[_vm_pb2.VmInfo, _Mapping]] = ..., scale_group: _Optional[str] = ..., worker: _Optional[_Union[Controller.WorkerHealthStatus, _Mapping]] = ..., bootstrap_logs: _Optional[str] = ..., worker_log_entries: _Optional[_Iterable[_Union[_logging_pb2.LogEntry, _Mapping]]] = ..., recent_tasks: _Optional[_Iterable[_Union[TaskStatus, _Mapping]]] = ..., current_resources: _Optional[_Union[WorkerResourceSnapshot, _Mapping]] = ..., resource_history: _Optional[_Iterable[_Union[WorkerResourceSnapshot, _Mapping]]] = ...) -> None: ... - def __init__(self) -> None: ... - -class Worker(_message.Message): - __slots__ = () - class RunTaskRequest(_message.Message): - __slots__ = ("task_id", "num_tasks", "entrypoint", "environment", "bundle_id", "resources", "timeout", "ports", "attempt_id", "constraints") - TASK_ID_FIELD_NUMBER: _ClassVar[int] - NUM_TASKS_FIELD_NUMBER: _ClassVar[int] - ENTRYPOINT_FIELD_NUMBER: _ClassVar[int] - ENVIRONMENT_FIELD_NUMBER: _ClassVar[int] - BUNDLE_ID_FIELD_NUMBER: _ClassVar[int] - RESOURCES_FIELD_NUMBER: _ClassVar[int] - TIMEOUT_FIELD_NUMBER: _ClassVar[int] - PORTS_FIELD_NUMBER: _ClassVar[int] - ATTEMPT_ID_FIELD_NUMBER: _ClassVar[int] - CONSTRAINTS_FIELD_NUMBER: _ClassVar[int] - task_id: str - num_tasks: int - entrypoint: RuntimeEntrypoint - environment: EnvironmentConfig - bundle_id: str - resources: ResourceSpecProto - timeout: _time_pb2.Duration - ports: _containers.RepeatedScalarFieldContainer[str] - attempt_id: int - constraints: _containers.RepeatedCompositeFieldContainer[Constraint] - def __init__(self, task_id: _Optional[str] = ..., num_tasks: _Optional[int] = ..., entrypoint: _Optional[_Union[RuntimeEntrypoint, _Mapping]] = ..., environment: _Optional[_Union[EnvironmentConfig, _Mapping]] = ..., bundle_id: _Optional[str] = ..., resources: _Optional[_Union[ResourceSpecProto, _Mapping]] = ..., timeout: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ..., ports: _Optional[_Iterable[str]] = ..., attempt_id: _Optional[int] = ..., constraints: _Optional[_Iterable[_Union[Constraint, _Mapping]]] = ...) -> None: ... - class GetTaskStatusRequest(_message.Message): - __slots__ = ("task_id",) - TASK_ID_FIELD_NUMBER: _ClassVar[int] - task_id: str - def __init__(self, task_id: _Optional[str] = ...) -> None: ... - class ListTasksRequest(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - class ListTasksResponse(_message.Message): - __slots__ = ("tasks",) - TASKS_FIELD_NUMBER: _ClassVar[int] - tasks: _containers.RepeatedCompositeFieldContainer[TaskStatus] - def __init__(self, tasks: _Optional[_Iterable[_Union[TaskStatus, _Mapping]]] = ...) -> None: ... - class KillTaskRequest(_message.Message): - __slots__ = ("task_id", "term_timeout") - TASK_ID_FIELD_NUMBER: _ClassVar[int] - TERM_TIMEOUT_FIELD_NUMBER: _ClassVar[int] - task_id: str - term_timeout: _time_pb2.Duration - def __init__(self, task_id: _Optional[str] = ..., term_timeout: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ...) -> None: ... - class HealthResponse(_message.Message): - __slots__ = ("healthy", "uptime", "running_tasks") - HEALTHY_FIELD_NUMBER: _ClassVar[int] - UPTIME_FIELD_NUMBER: _ClassVar[int] - RUNNING_TASKS_FIELD_NUMBER: _ClassVar[int] - healthy: bool - uptime: _time_pb2.Duration - running_tasks: int - def __init__(self, healthy: _Optional[bool] = ..., uptime: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ..., running_tasks: _Optional[int] = ...) -> None: ... - def __init__(self) -> None: ... - -class HeartbeatRequest(_message.Message): - __slots__ = ("tasks_to_run", "tasks_to_kill", "expected_tasks") - TASKS_TO_RUN_FIELD_NUMBER: _ClassVar[int] - TASKS_TO_KILL_FIELD_NUMBER: _ClassVar[int] - EXPECTED_TASKS_FIELD_NUMBER: _ClassVar[int] - tasks_to_run: _containers.RepeatedCompositeFieldContainer[Worker.RunTaskRequest] - tasks_to_kill: _containers.RepeatedScalarFieldContainer[str] - expected_tasks: _containers.RepeatedCompositeFieldContainer[Controller.WorkerTaskStatus] - def __init__(self, tasks_to_run: _Optional[_Iterable[_Union[Worker.RunTaskRequest, _Mapping]]] = ..., tasks_to_kill: _Optional[_Iterable[str]] = ..., expected_tasks: _Optional[_Iterable[_Union[Controller.WorkerTaskStatus, _Mapping]]] = ...) -> None: ... - -class HeartbeatResponse(_message.Message): - __slots__ = ("tasks", "resource_snapshot", "worker_healthy", "health_error") - TASKS_FIELD_NUMBER: _ClassVar[int] - RESOURCE_SNAPSHOT_FIELD_NUMBER: _ClassVar[int] - WORKER_HEALTHY_FIELD_NUMBER: _ClassVar[int] - HEALTH_ERROR_FIELD_NUMBER: _ClassVar[int] - tasks: _containers.RepeatedCompositeFieldContainer[Controller.WorkerTaskStatus] - resource_snapshot: WorkerResourceSnapshot - worker_healthy: bool - health_error: str - def __init__(self, tasks: _Optional[_Iterable[_Union[Controller.WorkerTaskStatus, _Mapping]]] = ..., resource_snapshot: _Optional[_Union[WorkerResourceSnapshot, _Mapping]] = ..., worker_healthy: _Optional[bool] = ..., health_error: _Optional[str] = ...) -> None: ... diff --git a/lib/iris/src/iris/rpc/cluster_pb2_grpc.py b/lib/iris/src/iris/rpc/cluster_pb2_grpc.py deleted file mode 100644 index bc63247be7..0000000000 --- a/lib/iris/src/iris/rpc/cluster_pb2_grpc.py +++ /dev/null @@ -1,990 +0,0 @@ -# Copyright The Marin Authors -# SPDX-License-Identifier: Apache-2.0 - -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" - -import grpc - -import cluster_pb2 as cluster__pb2 - -GRPC_GENERATED_VERSION = "1.76.0" -GRPC_VERSION = grpc.__version__ -_version_not_supported = False - -try: - from grpc._utilities import first_version_is_lower - - _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) -except ImportError: - _version_not_supported = True - -if _version_not_supported: - raise RuntimeError( - f"The grpc package installed is at version {GRPC_VERSION}," - + " but the generated code in cluster_pb2_grpc.py depends on" - + f" grpcio>={GRPC_GENERATED_VERSION}." - + f" Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}" - + f" or downgrade your generated code using grpcio-tools<={GRPC_VERSION}." - ) - - -class ControllerServiceStub: - """============================================================================ - SERVICES - ============================================================================ - - """ - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.LaunchJob = channel.unary_unary( - "/iris.cluster.ControllerService/LaunchJob", - request_serializer=cluster__pb2.Controller.LaunchJobRequest.SerializeToString, - response_deserializer=cluster__pb2.Controller.LaunchJobResponse.FromString, - _registered_method=True, - ) - self.GetJobStatus = channel.unary_unary( - "/iris.cluster.ControllerService/GetJobStatus", - request_serializer=cluster__pb2.Controller.GetJobStatusRequest.SerializeToString, - response_deserializer=cluster__pb2.Controller.GetJobStatusResponse.FromString, - _registered_method=True, - ) - self.TerminateJob = channel.unary_unary( - "/iris.cluster.ControllerService/TerminateJob", - request_serializer=cluster__pb2.Controller.TerminateJobRequest.SerializeToString, - response_deserializer=cluster__pb2.Empty.FromString, - _registered_method=True, - ) - self.ListJobs = channel.unary_unary( - "/iris.cluster.ControllerService/ListJobs", - request_serializer=cluster__pb2.Controller.ListJobsRequest.SerializeToString, - response_deserializer=cluster__pb2.Controller.ListJobsResponse.FromString, - _registered_method=True, - ) - self.GetTaskStatus = channel.unary_unary( - "/iris.cluster.ControllerService/GetTaskStatus", - request_serializer=cluster__pb2.Controller.GetTaskStatusRequest.SerializeToString, - response_deserializer=cluster__pb2.Controller.GetTaskStatusResponse.FromString, - _registered_method=True, - ) - self.ListTasks = channel.unary_unary( - "/iris.cluster.ControllerService/ListTasks", - request_serializer=cluster__pb2.Controller.ListTasksRequest.SerializeToString, - response_deserializer=cluster__pb2.Controller.ListTasksResponse.FromString, - _registered_method=True, - ) - self.RegisterWorker = channel.unary_unary( - "/iris.cluster.ControllerService/RegisterWorker", - request_serializer=cluster__pb2.Controller.RegisterWorkerRequest.SerializeToString, - response_deserializer=cluster__pb2.Controller.RegisterWorkerResponse.FromString, - _registered_method=True, - ) - self.ListWorkers = channel.unary_unary( - "/iris.cluster.ControllerService/ListWorkers", - request_serializer=cluster__pb2.Controller.ListWorkersRequest.SerializeToString, - response_deserializer=cluster__pb2.Controller.ListWorkersResponse.FromString, - _registered_method=True, - ) - self.ReportTaskState = channel.unary_unary( - "/iris.cluster.ControllerService/ReportTaskState", - request_serializer=cluster__pb2.Controller.ReportTaskStateRequest.SerializeToString, - response_deserializer=cluster__pb2.Controller.ReportTaskStateResponse.FromString, - _registered_method=True, - ) - self.RegisterEndpoint = channel.unary_unary( - "/iris.cluster.ControllerService/RegisterEndpoint", - request_serializer=cluster__pb2.Controller.RegisterEndpointRequest.SerializeToString, - response_deserializer=cluster__pb2.Controller.RegisterEndpointResponse.FromString, - _registered_method=True, - ) - self.UnregisterEndpoint = channel.unary_unary( - "/iris.cluster.ControllerService/UnregisterEndpoint", - request_serializer=cluster__pb2.Controller.UnregisterEndpointRequest.SerializeToString, - response_deserializer=cluster__pb2.Empty.FromString, - _registered_method=True, - ) - self.LookupEndpoint = channel.unary_unary( - "/iris.cluster.ControllerService/LookupEndpoint", - request_serializer=cluster__pb2.Controller.LookupEndpointRequest.SerializeToString, - response_deserializer=cluster__pb2.Controller.LookupEndpointResponse.FromString, - _registered_method=True, - ) - self.ListEndpoints = channel.unary_unary( - "/iris.cluster.ControllerService/ListEndpoints", - request_serializer=cluster__pb2.Controller.ListEndpointsRequest.SerializeToString, - response_deserializer=cluster__pb2.Controller.ListEndpointsResponse.FromString, - _registered_method=True, - ) - - -class ControllerServiceServicer: - """============================================================================ - SERVICES - ============================================================================ - - """ - - def LaunchJob(self, request, context): - """Job lifecycle""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def GetJobStatus(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def TerminateJob(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def ListJobs(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def GetTaskStatus(self, request, context): - """Task operations""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def ListTasks(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def RegisterWorker(self, request, context): - """Worker management (workers send heartbeats to controller)""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def ListWorkers(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def ReportTaskState(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def RegisterEndpoint(self, request, context): - """Endpoint registry (generic service discovery)""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def UnregisterEndpoint(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def LookupEndpoint(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def ListEndpoints(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - -def add_ControllerServiceServicer_to_server(servicer, server): - rpc_method_handlers = { - "LaunchJob": grpc.unary_unary_rpc_method_handler( - servicer.LaunchJob, - request_deserializer=cluster__pb2.Controller.LaunchJobRequest.FromString, - response_serializer=cluster__pb2.Controller.LaunchJobResponse.SerializeToString, - ), - "GetJobStatus": grpc.unary_unary_rpc_method_handler( - servicer.GetJobStatus, - request_deserializer=cluster__pb2.Controller.GetJobStatusRequest.FromString, - response_serializer=cluster__pb2.Controller.GetJobStatusResponse.SerializeToString, - ), - "TerminateJob": grpc.unary_unary_rpc_method_handler( - servicer.TerminateJob, - request_deserializer=cluster__pb2.Controller.TerminateJobRequest.FromString, - response_serializer=cluster__pb2.Empty.SerializeToString, - ), - "ListJobs": grpc.unary_unary_rpc_method_handler( - servicer.ListJobs, - request_deserializer=cluster__pb2.Controller.ListJobsRequest.FromString, - response_serializer=cluster__pb2.Controller.ListJobsResponse.SerializeToString, - ), - "GetTaskStatus": grpc.unary_unary_rpc_method_handler( - servicer.GetTaskStatus, - request_deserializer=cluster__pb2.Controller.GetTaskStatusRequest.FromString, - response_serializer=cluster__pb2.Controller.GetTaskStatusResponse.SerializeToString, - ), - "ListTasks": grpc.unary_unary_rpc_method_handler( - servicer.ListTasks, - request_deserializer=cluster__pb2.Controller.ListTasksRequest.FromString, - response_serializer=cluster__pb2.Controller.ListTasksResponse.SerializeToString, - ), - "RegisterWorker": grpc.unary_unary_rpc_method_handler( - servicer.RegisterWorker, - request_deserializer=cluster__pb2.Controller.RegisterWorkerRequest.FromString, - response_serializer=cluster__pb2.Controller.RegisterWorkerResponse.SerializeToString, - ), - "ListWorkers": grpc.unary_unary_rpc_method_handler( - servicer.ListWorkers, - request_deserializer=cluster__pb2.Controller.ListWorkersRequest.FromString, - response_serializer=cluster__pb2.Controller.ListWorkersResponse.SerializeToString, - ), - "ReportTaskState": grpc.unary_unary_rpc_method_handler( - servicer.ReportTaskState, - request_deserializer=cluster__pb2.Controller.ReportTaskStateRequest.FromString, - response_serializer=cluster__pb2.Controller.ReportTaskStateResponse.SerializeToString, - ), - "RegisterEndpoint": grpc.unary_unary_rpc_method_handler( - servicer.RegisterEndpoint, - request_deserializer=cluster__pb2.Controller.RegisterEndpointRequest.FromString, - response_serializer=cluster__pb2.Controller.RegisterEndpointResponse.SerializeToString, - ), - "UnregisterEndpoint": grpc.unary_unary_rpc_method_handler( - servicer.UnregisterEndpoint, - request_deserializer=cluster__pb2.Controller.UnregisterEndpointRequest.FromString, - response_serializer=cluster__pb2.Empty.SerializeToString, - ), - "LookupEndpoint": grpc.unary_unary_rpc_method_handler( - servicer.LookupEndpoint, - request_deserializer=cluster__pb2.Controller.LookupEndpointRequest.FromString, - response_serializer=cluster__pb2.Controller.LookupEndpointResponse.SerializeToString, - ), - "ListEndpoints": grpc.unary_unary_rpc_method_handler( - servicer.ListEndpoints, - request_deserializer=cluster__pb2.Controller.ListEndpointsRequest.FromString, - response_serializer=cluster__pb2.Controller.ListEndpointsResponse.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler("iris.cluster.ControllerService", rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers("iris.cluster.ControllerService", rpc_method_handlers) - - -# This class is part of an EXPERIMENTAL API. -class ControllerService: - """============================================================================ - SERVICES - ============================================================================ - - """ - - @staticmethod - def LaunchJob( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/LaunchJob", - cluster__pb2.Controller.LaunchJobRequest.SerializeToString, - cluster__pb2.Controller.LaunchJobResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def GetJobStatus( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/GetJobStatus", - cluster__pb2.Controller.GetJobStatusRequest.SerializeToString, - cluster__pb2.Controller.GetJobStatusResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def TerminateJob( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/TerminateJob", - cluster__pb2.Controller.TerminateJobRequest.SerializeToString, - cluster__pb2.Empty.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def ListJobs( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/ListJobs", - cluster__pb2.Controller.ListJobsRequest.SerializeToString, - cluster__pb2.Controller.ListJobsResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def GetTaskStatus( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/GetTaskStatus", - cluster__pb2.Controller.GetTaskStatusRequest.SerializeToString, - cluster__pb2.Controller.GetTaskStatusResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def ListTasks( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/ListTasks", - cluster__pb2.Controller.ListTasksRequest.SerializeToString, - cluster__pb2.Controller.ListTasksResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def RegisterWorker( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/RegisterWorker", - cluster__pb2.Controller.RegisterWorkerRequest.SerializeToString, - cluster__pb2.Controller.RegisterWorkerResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def ListWorkers( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/ListWorkers", - cluster__pb2.Controller.ListWorkersRequest.SerializeToString, - cluster__pb2.Controller.ListWorkersResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def ReportTaskState( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/ReportTaskState", - cluster__pb2.Controller.ReportTaskStateRequest.SerializeToString, - cluster__pb2.Controller.ReportTaskStateResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def RegisterEndpoint( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/RegisterEndpoint", - cluster__pb2.Controller.RegisterEndpointRequest.SerializeToString, - cluster__pb2.Controller.RegisterEndpointResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def UnregisterEndpoint( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/UnregisterEndpoint", - cluster__pb2.Controller.UnregisterEndpointRequest.SerializeToString, - cluster__pb2.Empty.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def LookupEndpoint( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/LookupEndpoint", - cluster__pb2.Controller.LookupEndpointRequest.SerializeToString, - cluster__pb2.Controller.LookupEndpointResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def ListEndpoints( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.ControllerService/ListEndpoints", - cluster__pb2.Controller.ListEndpointsRequest.SerializeToString, - cluster__pb2.Controller.ListEndpointsResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - -class WorkerServiceStub: - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.RunTask = channel.unary_unary( - "/iris.cluster.WorkerService/RunTask", - request_serializer=cluster__pb2.Worker.RunTaskRequest.SerializeToString, - response_deserializer=cluster__pb2.Worker.RunTaskResponse.FromString, - _registered_method=True, - ) - self.GetTaskStatus = channel.unary_unary( - "/iris.cluster.WorkerService/GetTaskStatus", - request_serializer=cluster__pb2.Worker.GetTaskStatusRequest.SerializeToString, - response_deserializer=cluster__pb2.TaskStatus.FromString, - _registered_method=True, - ) - self.ListTasks = channel.unary_unary( - "/iris.cluster.WorkerService/ListTasks", - request_serializer=cluster__pb2.Worker.ListTasksRequest.SerializeToString, - response_deserializer=cluster__pb2.Worker.ListTasksResponse.FromString, - _registered_method=True, - ) - self.FetchTaskLogs = channel.unary_unary( - "/iris.cluster.WorkerService/FetchTaskLogs", - request_serializer=cluster__pb2.Worker.FetchTaskLogsRequest.SerializeToString, - response_deserializer=cluster__pb2.Worker.FetchTaskLogsResponse.FromString, - _registered_method=True, - ) - self.KillTask = channel.unary_unary( - "/iris.cluster.WorkerService/KillTask", - request_serializer=cluster__pb2.Worker.KillTaskRequest.SerializeToString, - response_deserializer=cluster__pb2.Empty.FromString, - _registered_method=True, - ) - self.HealthCheck = channel.unary_unary( - "/iris.cluster.WorkerService/HealthCheck", - request_serializer=cluster__pb2.Empty.SerializeToString, - response_deserializer=cluster__pb2.Worker.HealthResponse.FromString, - _registered_method=True, - ) - - -class WorkerServiceServicer: - """Missing associated documentation comment in .proto file.""" - - def RunTask(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def GetTaskStatus(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def ListTasks(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def FetchTaskLogs(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def KillTask(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def HealthCheck(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - -def add_WorkerServiceServicer_to_server(servicer, server): - rpc_method_handlers = { - "RunTask": grpc.unary_unary_rpc_method_handler( - servicer.RunTask, - request_deserializer=cluster__pb2.Worker.RunTaskRequest.FromString, - response_serializer=cluster__pb2.Worker.RunTaskResponse.SerializeToString, - ), - "GetTaskStatus": grpc.unary_unary_rpc_method_handler( - servicer.GetTaskStatus, - request_deserializer=cluster__pb2.Worker.GetTaskStatusRequest.FromString, - response_serializer=cluster__pb2.TaskStatus.SerializeToString, - ), - "ListTasks": grpc.unary_unary_rpc_method_handler( - servicer.ListTasks, - request_deserializer=cluster__pb2.Worker.ListTasksRequest.FromString, - response_serializer=cluster__pb2.Worker.ListTasksResponse.SerializeToString, - ), - "FetchTaskLogs": grpc.unary_unary_rpc_method_handler( - servicer.FetchTaskLogs, - request_deserializer=cluster__pb2.Worker.FetchTaskLogsRequest.FromString, - response_serializer=cluster__pb2.Worker.FetchTaskLogsResponse.SerializeToString, - ), - "KillTask": grpc.unary_unary_rpc_method_handler( - servicer.KillTask, - request_deserializer=cluster__pb2.Worker.KillTaskRequest.FromString, - response_serializer=cluster__pb2.Empty.SerializeToString, - ), - "HealthCheck": grpc.unary_unary_rpc_method_handler( - servicer.HealthCheck, - request_deserializer=cluster__pb2.Empty.FromString, - response_serializer=cluster__pb2.Worker.HealthResponse.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler("iris.cluster.WorkerService", rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers("iris.cluster.WorkerService", rpc_method_handlers) - - -# This class is part of an EXPERIMENTAL API. -class WorkerService: - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def RunTask( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.WorkerService/RunTask", - cluster__pb2.Worker.RunTaskRequest.SerializeToString, - cluster__pb2.Worker.RunTaskResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def GetTaskStatus( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.WorkerService/GetTaskStatus", - cluster__pb2.Worker.GetTaskStatusRequest.SerializeToString, - cluster__pb2.TaskStatus.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def ListTasks( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.WorkerService/ListTasks", - cluster__pb2.Worker.ListTasksRequest.SerializeToString, - cluster__pb2.Worker.ListTasksResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def FetchTaskLogs( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.WorkerService/FetchTaskLogs", - cluster__pb2.Worker.FetchTaskLogsRequest.SerializeToString, - cluster__pb2.Worker.FetchTaskLogsResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def KillTask( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.WorkerService/KillTask", - cluster__pb2.Worker.KillTaskRequest.SerializeToString, - cluster__pb2.Empty.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def HealthCheck( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/iris.cluster.WorkerService/HealthCheck", - cluster__pb2.Empty.SerializeToString, - cluster__pb2.Worker.HealthResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) diff --git a/lib/iris/src/iris/rpc/config_pb2.py b/lib/iris/src/iris/rpc/config_pb2.py deleted file mode 100644 index ac073b935f..0000000000 --- a/lib/iris/src/iris/rpc/config_pb2.py +++ /dev/null @@ -1,150 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: config.proto -# Protobuf Python Version: 6.33.4 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 33, - 4, - '', - 'config.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from . import time_pb2 as time__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x63onfig.proto\x12\x0biris.config\x1a\ntime.proto\"H\n\x11GcpPlatformConfig\x12\x1d\n\nproject_id\x18\x01 \x01(\tR\tprojectId\x12\x14\n\x05zones\x18\x05 \x03(\tR\x05zones\"\x16\n\x14ManualPlatformConfig\"\x15\n\x13LocalPlatformConfig\"\xb0\x01\n\x17\x43oreweavePlatformConfig\x12\x16\n\x06region\x18\x01 \x01(\tR\x06region\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\x12\'\n\x0fkubeconfig_path\x18\x03 \x01(\tR\x0ekubeconfigPath\x12\x36\n\x17object_storage_endpoint\x18\x04 \x01(\tR\x15objectStorageEndpoint\"\xb0\x02\n\x0ePlatformConfig\x12!\n\x0clabel_prefix\x18\n \x01(\tR\x0blabelPrefix\x12\x32\n\x03gcp\x18\x01 \x01(\x0b\x32\x1e.iris.config.GcpPlatformConfigH\x00R\x03gcp\x12;\n\x06manual\x18\x02 \x01(\x0b\x32!.iris.config.ManualPlatformConfigH\x00R\x06manual\x12\x38\n\x05local\x18\x03 \x01(\x0b\x32 .iris.config.LocalPlatformConfigH\x00R\x05local\x12\x44\n\tcoreweave\x18\x04 \x01(\x0b\x32$.iris.config.CoreweavePlatformConfigH\x00R\tcoreweaveB\n\n\x08platform\"c\n\x0eManualProvider\x12\x14\n\x05hosts\x18\x01 \x03(\tR\x05hosts\x12\x19\n\x08ssh_user\x18\x02 \x01(\tR\x07sshUser\x12 \n\x0cssh_key_file\x18\x03 \x01(\tR\nsshKeyFile\"o\n\x0bGcpVmConfig\x12\x12\n\x04zone\x18\x01 \x01(\tR\x04zone\x12!\n\x0cmachine_type\x18\x02 \x01(\tR\x0bmachineType\x12)\n\x11\x62oot_disk_size_gb\x18\x03 \x01(\x05R\x0e\x62ootDiskSizeGb\"a\n\x0eManualVmConfig\x12\x12\n\x04host\x18\x01 \x01(\tR\x04host\x12\x19\n\x08ssh_user\x18\x02 \x01(\tR\x07sshUser\x12 \n\x0cssh_key_file\x18\x03 \x01(\tR\nsshKeyFile\"\x83\x03\n\x08VmConfig\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x39\n\x06labels\x18\x02 \x03(\x0b\x32!.iris.config.VmConfig.LabelsEntryR\x06labels\x12?\n\x08metadata\x18\x03 \x03(\x0b\x32#.iris.config.VmConfig.MetadataEntryR\x08metadata\x12,\n\x03gcp\x18\n \x01(\x0b\x32\x18.iris.config.GcpVmConfigH\x00R\x03gcp\x12\x35\n\x06manual\x18\x0b \x01(\x0b\x32\x1b.iris.config.ManualVmConfigH\x00R\x06manual\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\n\n\x08platform\"\x9b\x02\n\x0eGcpSliceConfig\x12<\n\x04mode\x18\x06 \x01(\x0e\x32(.iris.config.GcpSliceConfig.GcpSliceModeR\x04mode\x12\x12\n\x04zone\x18\x01 \x01(\tR\x04zone\x12\'\n\x0fruntime_version\x18\x02 \x01(\tR\x0eruntimeVersion\x12\x1a\n\x08topology\x18\x04 \x01(\tR\x08topology\x12!\n\x0cmachine_type\x18\x07 \x01(\tR\x0bmachineType\"=\n\x0cGcpSliceMode\x12\x16\n\x12GCP_SLICE_MODE_TPU\x10\x00\x12\x15\n\x11GCP_SLICE_MODE_VM\x10\x01J\x04\x08\x03\x10\x04J\x04\x08\x05\x10\x06J\x04\x08\x08\x10\t\"\x90\x01\n\x14\x43oreweaveSliceConfig\x12\x16\n\x06region\x18\x01 \x01(\tR\x06region\x12#\n\rinstance_type\x18\x02 \x01(\tR\x0cinstanceType\x12\x1b\n\tgpu_class\x18\x04 \x01(\tR\x08gpuClass\x12\x1e\n\ninfiniband\x18\x05 \x01(\x08R\ninfiniband\"f\n\x11ManualSliceConfig\x12\x14\n\x05hosts\x18\x01 \x03(\tR\x05hosts\x12\x19\n\x08ssh_user\x18\x02 \x01(\tR\x07sshUser\x12 \n\x0cssh_key_file\x18\x03 \x01(\tR\nsshKeyFile\"\x12\n\x10LocalSliceConfig\"\x8c\x05\n\x0bSliceConfig\x12\x1f\n\x0bname_prefix\x18\x01 \x01(\tR\nnamePrefix\x12\x17\n\x07num_vms\x18\x02 \x01(\x05R\x06numVms\x12G\n\x10\x61\x63\x63\x65lerator_type\x18\x03 \x01(\x0e\x32\x1c.iris.config.AcceleratorTypeR\x0f\x61\x63\x63\x65leratorType\x12/\n\x13\x61\x63\x63\x65lerator_variant\x18\x04 \x01(\tR\x12\x61\x63\x63\x65leratorVariant\x12<\n\x06labels\x18\x05 \x03(\x0b\x32$.iris.config.SliceConfig.LabelsEntryR\x06labels\x12 \n\x0bpreemptible\x18\x06 \x01(\x08R\x0bpreemptible\x12\x1b\n\tgpu_count\x18\x07 \x01(\x05R\x08gpuCount\x12 \n\x0c\x64isk_size_gb\x18\x08 \x01(\x05R\ndiskSizeGb\x12/\n\x03gcp\x18\n \x01(\x0b\x32\x1b.iris.config.GcpSliceConfigH\x00R\x03gcp\x12\x41\n\tcoreweave\x18\x0b \x01(\x0b\x32!.iris.config.CoreweaveSliceConfigH\x00R\tcoreweave\x12\x38\n\x06manual\x18\x0c \x01(\x0b\x32\x1e.iris.config.ManualSliceConfigH\x00R\x06manual\x12\x35\n\x05local\x18\r \x01(\x0b\x32\x1d.iris.config.LocalSliceConfigH\x00R\x05local\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\n\n\x08platform\"\xb5\x02\n\x13ScaleGroupResources\x12%\n\x0e\x63pu_millicores\x18\x01 \x01(\x05R\rcpuMillicores\x12!\n\x0cmemory_bytes\x18\x02 \x01(\x03R\x0bmemoryBytes\x12\x1d\n\ndisk_bytes\x18\x03 \x01(\x03R\tdiskBytes\x12=\n\x0b\x64\x65vice_type\x18\n \x01(\x0e\x32\x1c.iris.config.AcceleratorTypeR\ndeviceType\x12%\n\x0e\x64\x65vice_variant\x18\x0b \x01(\tR\rdeviceVariant\x12!\n\x0c\x64\x65vice_count\x18\x0c \x01(\x05R\x0b\x64\x65viceCount\x12 \n\x0bpreemptible\x18\x14 \x01(\x08R\x0bpreemptibleJ\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06\"\x8c\x02\n\x0eWorkerSettings\x12K\n\nattributes\x18\x01 \x03(\x0b\x32+.iris.config.WorkerSettings.AttributesEntryR\nattributes\x12\x36\n\x03\x65nv\x18\x02 \x03(\x0b\x32$.iris.config.WorkerSettings.EnvEntryR\x03\x65nv\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a\x36\n\x08\x45nvEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x8b\x04\n\x10ScaleGroupConfig\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12$\n\nmin_slices\x18\x03 \x01(\x05\x42\x05\xaa\x01\x02\x08\x01R\tminSlices\x12$\n\nmax_slices\x18\x04 \x01(\x05\x42\x05\xaa\x01\x02\x08\x01R\tmaxSlices\x12>\n\tresources\x18\x0e \x01(\x0b\x32 .iris.config.ScaleGroupResourcesR\tresources\x12\x1e\n\x07num_vms\x18\x0f \x01(\x05\x42\x05\xaa\x01\x02\x08\x01R\x06numVms\x12!\n\x08priority\x18\x1e \x01(\x05\x42\x05\xaa\x01\x02\x08\x01R\x08priority\x12\x34\n\x13scale_up_rate_limit\x18\x46 \x01(\x05\x42\x05\xaa\x01\x02\x08\x01R\x10scaleUpRateLimit\x12\x38\n\x15scale_down_rate_limit\x18G \x01(\x05\x42\x05\xaa\x01\x02\x08\x01R\x12scaleDownRateLimit\x12?\n\x0eslice_template\x18\x32 \x01(\x0b\x32\x18.iris.config.SliceConfigR\rsliceTemplate\x12\x33\n\x06worker\x18< \x01(\x0b\x32\x1b.iris.config.WorkerSettingsR\x06workerJ\x04\x08\x02\x10\x03J\x04\x08\t\x10\nJ\x04\x08\n\x10\x0bJ\x04\x08\x0b\x10\x0cJ\x04\x08\x0c\x10\rJ\x04\x08\r\x10\x0eJ\x04\x08\x14\x10\x15J\x04\x08(\x10)\"\xb7\x08\n\x0cWorkerConfig\x12!\n\x0c\x64ocker_image\x18\x01 \x01(\tR\x0b\x64ockerImage\x12\x12\n\x04host\x18\x02 \x01(\tR\x04host\x12\x12\n\x04port\x18\x03 \x01(\x05R\x04port\x12\x1d\n\nport_range\x18\x04 \x01(\tR\tportRange\x12\x1b\n\tworker_id\x18\x05 \x01(\tR\x08workerId\x12-\n\x12\x63ontroller_address\x18\x06 \x01(\tR\x11\x63ontrollerAddress\x12\x1b\n\tcache_dir\x18\x07 \x01(\tR\x08\x63\x61\x63heDir\x12,\n\x12\x64\x65\x66\x61ult_task_image\x18\t \x01(\tR\x10\x64\x65\x66\x61ultTaskImage\x12W\n\x10\x64\x65\x66\x61ult_task_env\x18\n \x03(\x0b\x32-.iris.config.WorkerConfig.DefaultTaskEnvEntryR\x0e\x64\x65\x66\x61ultTaskEnv\x12\x18\n\x07runtime\x18\x0b \x01(\tR\x07runtime\x12G\n\x10\x61\x63\x63\x65lerator_type\x18\x14 \x01(\x0e\x32\x1c.iris.config.AcceleratorTypeR\x0f\x61\x63\x63\x65leratorType\x12/\n\x13\x61\x63\x63\x65lerator_variant\x18\x15 \x01(\tR\x12\x61\x63\x63\x65leratorVariant\x12\x1b\n\tgpu_count\x18\x16 \x01(\x05R\x08gpuCount\x12 \n\x0bpreemptible\x18\x17 \x01(\x08R\x0bpreemptible\x12\\\n\x11worker_attributes\x18\x1e \x03(\x0b\x32/.iris.config.WorkerConfig.WorkerAttributesEntryR\x10workerAttributes\x12\x38\n\rpoll_interval\x18( \x01(\x0b\x32\x13.iris.time.DurationR\x0cpollInterval\x12@\n\x11heartbeat_timeout\x18) \x01(\x0b\x32\x13.iris.time.DurationR\x10heartbeatTimeout\x12\x19\n\x08slice_id\x18\x08 \x01(\tR\x07sliceId\x12\x37\n\x08platform\x18\x32 \x01(\x0b\x32\x1b.iris.config.PlatformConfigR\x08platform\x12%\n\x0estorage_prefix\x18< \x01(\tR\rstoragePrefix\x12\x1d\n\nauth_token\x18\x46 \x01(\tR\tauthToken\x1a\x41\n\x13\x44\x65\x66\x61ultTaskEnvEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a\x43\n\x15WorkerAttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x8c\x01\n\tSshConfig\x12\x12\n\x04user\x18\x01 \x01(\tR\x04user\x12\x19\n\x08key_file\x18\x02 \x01(\tR\x07keyFile\x12\x12\n\x04port\x18\x03 \x01(\x05R\x04port\x12<\n\x0f\x63onnect_timeout\x18\x04 \x01(\x0b\x32\x13.iris.time.DurationR\x0e\x63onnectTimeout\"a\n\rStorageConfig\x12&\n\x0flocal_state_dir\x18\x01 \x01(\tR\rlocalStateDir\x12(\n\x10remote_state_dir\x18\x02 \x01(\tR\x0eremoteStateDir\"\x8b\x01\n\x13GcpControllerConfig\x12\x12\n\x04zone\x18\x01 \x01(\tR\x04zone\x12!\n\x0cmachine_type\x18\x02 \x01(\tR\x0bmachineType\x12)\n\x11\x62oot_disk_size_gb\x18\x03 \x01(\x05R\x0e\x62ootDiskSizeGb\x12\x12\n\x04port\x18\x04 \x01(\x05R\x04port\"@\n\x16ManualControllerConfig\x12\x12\n\x04host\x18\x01 \x01(\tR\x04host\x12\x12\n\x04port\x18\x03 \x01(\x05R\x04port\"+\n\x15LocalControllerConfig\x12\x12\n\x04port\x18\x01 \x01(\x05R\x04port\"s\n\x19\x43oreweaveControllerConfig\x12\x12\n\x04port\x18\x01 \x01(\x05R\x04port\x12!\n\x0cservice_name\x18\x02 \x01(\tR\x0bserviceName\x12\x1f\n\x0bscale_group\x18\x03 \x01(\tR\nscaleGroup\"\xad\x03\n\x12\x43ontrollerVmConfig\x12\x14\n\x05image\x18\n \x01(\tR\x05image\x12:\n\x0eworker_timeout\x18\x0c \x01(\x0b\x32\x13.iris.time.DurationR\rworkerTimeout\x12>\n\x1bheartbeat_failure_threshold\x18\r \x01(\x05R\x19heartbeatFailureThreshold\x12\x34\n\x03gcp\x18\x01 \x01(\x0b\x32 .iris.config.GcpControllerConfigH\x00R\x03gcp\x12=\n\x06manual\x18\x02 \x01(\x0b\x32#.iris.config.ManualControllerConfigH\x00R\x06manual\x12:\n\x05local\x18\x03 \x01(\x0b\x32\".iris.config.LocalControllerConfigH\x00R\x05local\x12\x46\n\tcoreweave\x18\x04 \x01(\x0b\x32&.iris.config.CoreweaveControllerConfigH\x00R\tcoreweaveB\x0c\n\ncontroller\"\xe4\x02\n\x10\x41utoscalerConfig\x12\x44\n\x13\x65valuation_interval\x18\x01 \x01(\x0b\x32\x13.iris.time.DurationR\x12\x65valuationInterval\x12\x39\n\x0escale_up_delay\x18\x03 \x01(\x0b\x32\x13.iris.time.DurationR\x0cscaleUpDelay\x12=\n\x10scale_down_delay\x18\x04 \x01(\x0b\x32\x13.iris.time.DurationR\x0escaleDownDelay\x12\x45\n\x14startup_grace_period\x18\x05 \x01(\x0b\x32\x13.iris.time.DurationR\x12startupGracePeriod\x12I\n\x16heartbeat_grace_period\x18\x06 \x01(\x0b\x32\x13.iris.time.DurationR\x14heartbeatGracePeriod\"\xb8\x01\n\x0e\x44\x65\x66\x61ultsConfig\x12(\n\x03ssh\x18\x02 \x01(\x0b\x32\x16.iris.config.SshConfigR\x03ssh\x12=\n\nautoscaler\x18\x03 \x01(\x0b\x32\x1d.iris.config.AutoscalerConfigR\nautoscaler\x12\x31\n\x06worker\x18\x06 \x01(\x0b\x32\x19.iris.config.WorkerConfigR\x06workerJ\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06\".\n\rGcpAuthConfig\x12\x1d\n\nproject_id\x18\x01 \x01(\tR\tprojectId\"\x90\x01\n\x10StaticAuthConfig\x12\x41\n\x06tokens\x18\x01 \x03(\x0b\x32).iris.config.StaticAuthConfig.TokensEntryR\x06tokens\x1a\x39\n\x0bTokensEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa2\x01\n\nAuthConfig\x12.\n\x03gcp\x18\x01 \x01(\x0b\x32\x1a.iris.config.GcpAuthConfigH\x00R\x03gcp\x12\x37\n\x06static\x18\x02 \x01(\x0b\x32\x1d.iris.config.StaticAuthConfigH\x00R\x06static\x12\x1f\n\x0b\x61\x64min_users\x18\x03 \x03(\tR\nadminUsersB\n\n\x08provider\"\xf0\x03\n\x11IrisClusterConfig\x12\x12\n\x04name\x18\x05 \x01(\tR\x04name\x12\x37\n\x08platform\x18\n \x01(\x0b\x32\x1b.iris.config.PlatformConfigR\x08platform\x12\x37\n\x08\x64\x65\x66\x61ults\x18\x0b \x01(\x0b\x32\x1b.iris.config.DefaultsConfigR\x08\x64\x65\x66\x61ults\x12\x34\n\x07storage\x18\x0c \x01(\x0b\x32\x1a.iris.config.StorageConfigR\x07storage\x12?\n\ncontroller\x18\x1f \x01(\x0b\x32\x1f.iris.config.ControllerVmConfigR\ncontroller\x12R\n\x0cscale_groups\x18\x32 \x03(\x0b\x32/.iris.config.IrisClusterConfig.ScaleGroupsEntryR\x0bscaleGroups\x12+\n\x04\x61uth\x18< \x01(\x0b\x32\x17.iris.config.AuthConfigR\x04\x61uth\x1a]\n\x10ScaleGroupsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32\x1d.iris.config.ScaleGroupConfigR\x05value:\x02\x38\x01*\x81\x01\n\x0f\x41\x63\x63\x65leratorType\x12 \n\x1c\x41\x43\x43\x45LERATOR_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x41\x43\x43\x45LERATOR_TYPE_CPU\x10\x01\x12\x18\n\x14\x41\x43\x43\x45LERATOR_TYPE_GPU\x10\x02\x12\x18\n\x14\x41\x43\x43\x45LERATOR_TYPE_TPU\x10\x03\x42p\n\x0f\x63om.iris.configB\x0b\x43onfigProtoP\x01\xa2\x02\x03ICX\xaa\x02\x0bIris.Config\xca\x02\x0bIris\\Config\xe2\x02\x17Iris\\Config\\GPBMetadata\xea\x02\x0cIris::Config\x92\x03\x02\x08\x01\x62\x08\x65\x64itionsp\xe8\x07') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'config_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\017com.iris.configB\013ConfigProtoP\001\242\002\003ICX\252\002\013Iris.Config\312\002\013Iris\\Config\342\002\027Iris\\Config\\GPBMetadata\352\002\014Iris::Config\222\003\002\010\001' - _globals['_VMCONFIG_LABELSENTRY']._loaded_options = None - _globals['_VMCONFIG_LABELSENTRY']._serialized_options = b'8\001' - _globals['_VMCONFIG_METADATAENTRY']._loaded_options = None - _globals['_VMCONFIG_METADATAENTRY']._serialized_options = b'8\001' - _globals['_SLICECONFIG_LABELSENTRY']._loaded_options = None - _globals['_SLICECONFIG_LABELSENTRY']._serialized_options = b'8\001' - _globals['_WORKERSETTINGS_ATTRIBUTESENTRY']._loaded_options = None - _globals['_WORKERSETTINGS_ATTRIBUTESENTRY']._serialized_options = b'8\001' - _globals['_WORKERSETTINGS_ENVENTRY']._loaded_options = None - _globals['_WORKERSETTINGS_ENVENTRY']._serialized_options = b'8\001' - _globals['_SCALEGROUPCONFIG'].fields_by_name['min_slices']._loaded_options = None - _globals['_SCALEGROUPCONFIG'].fields_by_name['min_slices']._serialized_options = b'\252\001\002\010\001' - _globals['_SCALEGROUPCONFIG'].fields_by_name['max_slices']._loaded_options = None - _globals['_SCALEGROUPCONFIG'].fields_by_name['max_slices']._serialized_options = b'\252\001\002\010\001' - _globals['_SCALEGROUPCONFIG'].fields_by_name['num_vms']._loaded_options = None - _globals['_SCALEGROUPCONFIG'].fields_by_name['num_vms']._serialized_options = b'\252\001\002\010\001' - _globals['_SCALEGROUPCONFIG'].fields_by_name['priority']._loaded_options = None - _globals['_SCALEGROUPCONFIG'].fields_by_name['priority']._serialized_options = b'\252\001\002\010\001' - _globals['_SCALEGROUPCONFIG'].fields_by_name['scale_up_rate_limit']._loaded_options = None - _globals['_SCALEGROUPCONFIG'].fields_by_name['scale_up_rate_limit']._serialized_options = b'\252\001\002\010\001' - _globals['_SCALEGROUPCONFIG'].fields_by_name['scale_down_rate_limit']._loaded_options = None - _globals['_SCALEGROUPCONFIG'].fields_by_name['scale_down_rate_limit']._serialized_options = b'\252\001\002\010\001' - _globals['_WORKERCONFIG_DEFAULTTASKENVENTRY']._loaded_options = None - _globals['_WORKERCONFIG_DEFAULTTASKENVENTRY']._serialized_options = b'8\001' - _globals['_WORKERCONFIG_WORKERATTRIBUTESENTRY']._loaded_options = None - _globals['_WORKERCONFIG_WORKERATTRIBUTESENTRY']._serialized_options = b'8\001' - _globals['_STATICAUTHCONFIG_TOKENSENTRY']._loaded_options = None - _globals['_STATICAUTHCONFIG_TOKENSENTRY']._serialized_options = b'8\001' - _globals['_IRISCLUSTERCONFIG_SCALEGROUPSENTRY']._loaded_options = None - _globals['_IRISCLUSTERCONFIG_SCALEGROUPSENTRY']._serialized_options = b'8\001' - _globals['_ACCELERATORTYPE']._serialized_start=7204 - _globals['_ACCELERATORTYPE']._serialized_end=7333 - _globals['_GCPPLATFORMCONFIG']._serialized_start=41 - _globals['_GCPPLATFORMCONFIG']._serialized_end=113 - _globals['_MANUALPLATFORMCONFIG']._serialized_start=115 - _globals['_MANUALPLATFORMCONFIG']._serialized_end=137 - _globals['_LOCALPLATFORMCONFIG']._serialized_start=139 - _globals['_LOCALPLATFORMCONFIG']._serialized_end=160 - _globals['_COREWEAVEPLATFORMCONFIG']._serialized_start=163 - _globals['_COREWEAVEPLATFORMCONFIG']._serialized_end=339 - _globals['_PLATFORMCONFIG']._serialized_start=342 - _globals['_PLATFORMCONFIG']._serialized_end=646 - _globals['_MANUALPROVIDER']._serialized_start=648 - _globals['_MANUALPROVIDER']._serialized_end=747 - _globals['_GCPVMCONFIG']._serialized_start=749 - _globals['_GCPVMCONFIG']._serialized_end=860 - _globals['_MANUALVMCONFIG']._serialized_start=862 - _globals['_MANUALVMCONFIG']._serialized_end=959 - _globals['_VMCONFIG']._serialized_start=962 - _globals['_VMCONFIG']._serialized_end=1349 - _globals['_VMCONFIG_LABELSENTRY']._serialized_start=1219 - _globals['_VMCONFIG_LABELSENTRY']._serialized_end=1276 - _globals['_VMCONFIG_METADATAENTRY']._serialized_start=1278 - _globals['_VMCONFIG_METADATAENTRY']._serialized_end=1337 - _globals['_GCPSLICECONFIG']._serialized_start=1352 - _globals['_GCPSLICECONFIG']._serialized_end=1635 - _globals['_GCPSLICECONFIG_GCPSLICEMODE']._serialized_start=1556 - _globals['_GCPSLICECONFIG_GCPSLICEMODE']._serialized_end=1617 - _globals['_COREWEAVESLICECONFIG']._serialized_start=1638 - _globals['_COREWEAVESLICECONFIG']._serialized_end=1782 - _globals['_MANUALSLICECONFIG']._serialized_start=1784 - _globals['_MANUALSLICECONFIG']._serialized_end=1886 - _globals['_LOCALSLICECONFIG']._serialized_start=1888 - _globals['_LOCALSLICECONFIG']._serialized_end=1906 - _globals['_SLICECONFIG']._serialized_start=1909 - _globals['_SLICECONFIG']._serialized_end=2561 - _globals['_SLICECONFIG_LABELSENTRY']._serialized_start=1219 - _globals['_SLICECONFIG_LABELSENTRY']._serialized_end=1276 - _globals['_SCALEGROUPRESOURCES']._serialized_start=2564 - _globals['_SCALEGROUPRESOURCES']._serialized_end=2873 - _globals['_WORKERSETTINGS']._serialized_start=2876 - _globals['_WORKERSETTINGS']._serialized_end=3144 - _globals['_WORKERSETTINGS_ATTRIBUTESENTRY']._serialized_start=3027 - _globals['_WORKERSETTINGS_ATTRIBUTESENTRY']._serialized_end=3088 - _globals['_WORKERSETTINGS_ENVENTRY']._serialized_start=3090 - _globals['_WORKERSETTINGS_ENVENTRY']._serialized_end=3144 - _globals['_SCALEGROUPCONFIG']._serialized_start=3147 - _globals['_SCALEGROUPCONFIG']._serialized_end=3670 - _globals['_WORKERCONFIG']._serialized_start=3673 - _globals['_WORKERCONFIG']._serialized_end=4752 - _globals['_WORKERCONFIG_DEFAULTTASKENVENTRY']._serialized_start=4618 - _globals['_WORKERCONFIG_DEFAULTTASKENVENTRY']._serialized_end=4683 - _globals['_WORKERCONFIG_WORKERATTRIBUTESENTRY']._serialized_start=4685 - _globals['_WORKERCONFIG_WORKERATTRIBUTESENTRY']._serialized_end=4752 - _globals['_SSHCONFIG']._serialized_start=4755 - _globals['_SSHCONFIG']._serialized_end=4895 - _globals['_STORAGECONFIG']._serialized_start=4897 - _globals['_STORAGECONFIG']._serialized_end=4994 - _globals['_GCPCONTROLLERCONFIG']._serialized_start=4997 - _globals['_GCPCONTROLLERCONFIG']._serialized_end=5136 - _globals['_MANUALCONTROLLERCONFIG']._serialized_start=5138 - _globals['_MANUALCONTROLLERCONFIG']._serialized_end=5202 - _globals['_LOCALCONTROLLERCONFIG']._serialized_start=5204 - _globals['_LOCALCONTROLLERCONFIG']._serialized_end=5247 - _globals['_COREWEAVECONTROLLERCONFIG']._serialized_start=5249 - _globals['_COREWEAVECONTROLLERCONFIG']._serialized_end=5364 - _globals['_CONTROLLERVMCONFIG']._serialized_start=5367 - _globals['_CONTROLLERVMCONFIG']._serialized_end=5796 - _globals['_AUTOSCALERCONFIG']._serialized_start=5799 - _globals['_AUTOSCALERCONFIG']._serialized_end=6155 - _globals['_DEFAULTSCONFIG']._serialized_start=6158 - _globals['_DEFAULTSCONFIG']._serialized_end=6342 - _globals['_GCPAUTHCONFIG']._serialized_start=6344 - _globals['_GCPAUTHCONFIG']._serialized_end=6390 - _globals['_STATICAUTHCONFIG']._serialized_start=6393 - _globals['_STATICAUTHCONFIG']._serialized_end=6537 - _globals['_STATICAUTHCONFIG_TOKENSENTRY']._serialized_start=6480 - _globals['_STATICAUTHCONFIG_TOKENSENTRY']._serialized_end=6537 - _globals['_AUTHCONFIG']._serialized_start=6540 - _globals['_AUTHCONFIG']._serialized_end=6702 - _globals['_IRISCLUSTERCONFIG']._serialized_start=6705 - _globals['_IRISCLUSTERCONFIG']._serialized_end=7201 - _globals['_IRISCLUSTERCONFIG_SCALEGROUPSENTRY']._serialized_start=7108 - _globals['_IRISCLUSTERCONFIG_SCALEGROUPSENTRY']._serialized_end=7201 -# @@protoc_insertion_point(module_scope) diff --git a/lib/iris/src/iris/rpc/config_pb2.pyi b/lib/iris/src/iris/rpc/config_pb2.pyi deleted file mode 100644 index 06f6ea029d..0000000000 --- a/lib/iris/src/iris/rpc/config_pb2.pyi +++ /dev/null @@ -1,477 +0,0 @@ -from . import time_pb2 as _time_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from collections.abc import Iterable as _Iterable, Mapping as _Mapping -from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class AcceleratorType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - ACCELERATOR_TYPE_UNSPECIFIED: _ClassVar[AcceleratorType] - ACCELERATOR_TYPE_CPU: _ClassVar[AcceleratorType] - ACCELERATOR_TYPE_GPU: _ClassVar[AcceleratorType] - ACCELERATOR_TYPE_TPU: _ClassVar[AcceleratorType] -ACCELERATOR_TYPE_UNSPECIFIED: AcceleratorType -ACCELERATOR_TYPE_CPU: AcceleratorType -ACCELERATOR_TYPE_GPU: AcceleratorType -ACCELERATOR_TYPE_TPU: AcceleratorType - -class GcpPlatformConfig(_message.Message): - __slots__ = ("project_id", "zones") - PROJECT_ID_FIELD_NUMBER: _ClassVar[int] - ZONES_FIELD_NUMBER: _ClassVar[int] - project_id: str - zones: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, project_id: _Optional[str] = ..., zones: _Optional[_Iterable[str]] = ...) -> None: ... - -class ManualPlatformConfig(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class LocalPlatformConfig(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class CoreweavePlatformConfig(_message.Message): - __slots__ = ("region", "namespace", "kubeconfig_path", "object_storage_endpoint") - REGION_FIELD_NUMBER: _ClassVar[int] - NAMESPACE_FIELD_NUMBER: _ClassVar[int] - KUBECONFIG_PATH_FIELD_NUMBER: _ClassVar[int] - OBJECT_STORAGE_ENDPOINT_FIELD_NUMBER: _ClassVar[int] - region: str - namespace: str - kubeconfig_path: str - object_storage_endpoint: str - def __init__(self, region: _Optional[str] = ..., namespace: _Optional[str] = ..., kubeconfig_path: _Optional[str] = ..., object_storage_endpoint: _Optional[str] = ...) -> None: ... - -class PlatformConfig(_message.Message): - __slots__ = ("label_prefix", "gcp", "manual", "local", "coreweave") - LABEL_PREFIX_FIELD_NUMBER: _ClassVar[int] - GCP_FIELD_NUMBER: _ClassVar[int] - MANUAL_FIELD_NUMBER: _ClassVar[int] - LOCAL_FIELD_NUMBER: _ClassVar[int] - COREWEAVE_FIELD_NUMBER: _ClassVar[int] - label_prefix: str - gcp: GcpPlatformConfig - manual: ManualPlatformConfig - local: LocalPlatformConfig - coreweave: CoreweavePlatformConfig - def __init__(self, label_prefix: _Optional[str] = ..., gcp: _Optional[_Union[GcpPlatformConfig, _Mapping]] = ..., manual: _Optional[_Union[ManualPlatformConfig, _Mapping]] = ..., local: _Optional[_Union[LocalPlatformConfig, _Mapping]] = ..., coreweave: _Optional[_Union[CoreweavePlatformConfig, _Mapping]] = ...) -> None: ... - -class ManualProvider(_message.Message): - __slots__ = ("hosts", "ssh_user", "ssh_key_file") - HOSTS_FIELD_NUMBER: _ClassVar[int] - SSH_USER_FIELD_NUMBER: _ClassVar[int] - SSH_KEY_FILE_FIELD_NUMBER: _ClassVar[int] - hosts: _containers.RepeatedScalarFieldContainer[str] - ssh_user: str - ssh_key_file: str - def __init__(self, hosts: _Optional[_Iterable[str]] = ..., ssh_user: _Optional[str] = ..., ssh_key_file: _Optional[str] = ...) -> None: ... - -class GcpVmConfig(_message.Message): - __slots__ = ("zone", "machine_type", "boot_disk_size_gb") - ZONE_FIELD_NUMBER: _ClassVar[int] - MACHINE_TYPE_FIELD_NUMBER: _ClassVar[int] - BOOT_DISK_SIZE_GB_FIELD_NUMBER: _ClassVar[int] - zone: str - machine_type: str - boot_disk_size_gb: int - def __init__(self, zone: _Optional[str] = ..., machine_type: _Optional[str] = ..., boot_disk_size_gb: _Optional[int] = ...) -> None: ... - -class ManualVmConfig(_message.Message): - __slots__ = ("host", "ssh_user", "ssh_key_file") - HOST_FIELD_NUMBER: _ClassVar[int] - SSH_USER_FIELD_NUMBER: _ClassVar[int] - SSH_KEY_FILE_FIELD_NUMBER: _ClassVar[int] - host: str - ssh_user: str - ssh_key_file: str - def __init__(self, host: _Optional[str] = ..., ssh_user: _Optional[str] = ..., ssh_key_file: _Optional[str] = ...) -> None: ... - -class VmConfig(_message.Message): - __slots__ = ("name", "labels", "metadata", "gcp", "manual") - class LabelsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - class MetadataEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - NAME_FIELD_NUMBER: _ClassVar[int] - LABELS_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - GCP_FIELD_NUMBER: _ClassVar[int] - MANUAL_FIELD_NUMBER: _ClassVar[int] - name: str - labels: _containers.ScalarMap[str, str] - metadata: _containers.ScalarMap[str, str] - gcp: GcpVmConfig - manual: ManualVmConfig - def __init__(self, name: _Optional[str] = ..., labels: _Optional[_Mapping[str, str]] = ..., metadata: _Optional[_Mapping[str, str]] = ..., gcp: _Optional[_Union[GcpVmConfig, _Mapping]] = ..., manual: _Optional[_Union[ManualVmConfig, _Mapping]] = ...) -> None: ... - -class GcpSliceConfig(_message.Message): - __slots__ = ("mode", "zone", "runtime_version", "topology", "machine_type") - class GcpSliceMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - GCP_SLICE_MODE_TPU: _ClassVar[GcpSliceConfig.GcpSliceMode] - GCP_SLICE_MODE_VM: _ClassVar[GcpSliceConfig.GcpSliceMode] - GCP_SLICE_MODE_TPU: GcpSliceConfig.GcpSliceMode - GCP_SLICE_MODE_VM: GcpSliceConfig.GcpSliceMode - MODE_FIELD_NUMBER: _ClassVar[int] - ZONE_FIELD_NUMBER: _ClassVar[int] - RUNTIME_VERSION_FIELD_NUMBER: _ClassVar[int] - TOPOLOGY_FIELD_NUMBER: _ClassVar[int] - MACHINE_TYPE_FIELD_NUMBER: _ClassVar[int] - mode: GcpSliceConfig.GcpSliceMode - zone: str - runtime_version: str - topology: str - machine_type: str - def __init__(self, mode: _Optional[_Union[GcpSliceConfig.GcpSliceMode, str]] = ..., zone: _Optional[str] = ..., runtime_version: _Optional[str] = ..., topology: _Optional[str] = ..., machine_type: _Optional[str] = ...) -> None: ... - -class CoreweaveSliceConfig(_message.Message): - __slots__ = ("region", "instance_type", "gpu_class", "infiniband") - REGION_FIELD_NUMBER: _ClassVar[int] - INSTANCE_TYPE_FIELD_NUMBER: _ClassVar[int] - GPU_CLASS_FIELD_NUMBER: _ClassVar[int] - INFINIBAND_FIELD_NUMBER: _ClassVar[int] - region: str - instance_type: str - gpu_class: str - infiniband: bool - def __init__(self, region: _Optional[str] = ..., instance_type: _Optional[str] = ..., gpu_class: _Optional[str] = ..., infiniband: _Optional[bool] = ...) -> None: ... - -class ManualSliceConfig(_message.Message): - __slots__ = ("hosts", "ssh_user", "ssh_key_file") - HOSTS_FIELD_NUMBER: _ClassVar[int] - SSH_USER_FIELD_NUMBER: _ClassVar[int] - SSH_KEY_FILE_FIELD_NUMBER: _ClassVar[int] - hosts: _containers.RepeatedScalarFieldContainer[str] - ssh_user: str - ssh_key_file: str - def __init__(self, hosts: _Optional[_Iterable[str]] = ..., ssh_user: _Optional[str] = ..., ssh_key_file: _Optional[str] = ...) -> None: ... - -class LocalSliceConfig(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class SliceConfig(_message.Message): - __slots__ = ("name_prefix", "num_vms", "accelerator_type", "accelerator_variant", "labels", "preemptible", "gpu_count", "disk_size_gb", "gcp", "coreweave", "manual", "local") - class LabelsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - NAME_PREFIX_FIELD_NUMBER: _ClassVar[int] - NUM_VMS_FIELD_NUMBER: _ClassVar[int] - ACCELERATOR_TYPE_FIELD_NUMBER: _ClassVar[int] - ACCELERATOR_VARIANT_FIELD_NUMBER: _ClassVar[int] - LABELS_FIELD_NUMBER: _ClassVar[int] - PREEMPTIBLE_FIELD_NUMBER: _ClassVar[int] - GPU_COUNT_FIELD_NUMBER: _ClassVar[int] - DISK_SIZE_GB_FIELD_NUMBER: _ClassVar[int] - GCP_FIELD_NUMBER: _ClassVar[int] - COREWEAVE_FIELD_NUMBER: _ClassVar[int] - MANUAL_FIELD_NUMBER: _ClassVar[int] - LOCAL_FIELD_NUMBER: _ClassVar[int] - name_prefix: str - num_vms: int - accelerator_type: AcceleratorType - accelerator_variant: str - labels: _containers.ScalarMap[str, str] - preemptible: bool - gpu_count: int - disk_size_gb: int - gcp: GcpSliceConfig - coreweave: CoreweaveSliceConfig - manual: ManualSliceConfig - local: LocalSliceConfig - def __init__(self, name_prefix: _Optional[str] = ..., num_vms: _Optional[int] = ..., accelerator_type: _Optional[_Union[AcceleratorType, str]] = ..., accelerator_variant: _Optional[str] = ..., labels: _Optional[_Mapping[str, str]] = ..., preemptible: _Optional[bool] = ..., gpu_count: _Optional[int] = ..., disk_size_gb: _Optional[int] = ..., gcp: _Optional[_Union[GcpSliceConfig, _Mapping]] = ..., coreweave: _Optional[_Union[CoreweaveSliceConfig, _Mapping]] = ..., manual: _Optional[_Union[ManualSliceConfig, _Mapping]] = ..., local: _Optional[_Union[LocalSliceConfig, _Mapping]] = ...) -> None: ... - -class ScaleGroupResources(_message.Message): - __slots__ = ("cpu_millicores", "memory_bytes", "disk_bytes", "device_type", "device_variant", "device_count", "preemptible") - CPU_MILLICORES_FIELD_NUMBER: _ClassVar[int] - MEMORY_BYTES_FIELD_NUMBER: _ClassVar[int] - DISK_BYTES_FIELD_NUMBER: _ClassVar[int] - DEVICE_TYPE_FIELD_NUMBER: _ClassVar[int] - DEVICE_VARIANT_FIELD_NUMBER: _ClassVar[int] - DEVICE_COUNT_FIELD_NUMBER: _ClassVar[int] - PREEMPTIBLE_FIELD_NUMBER: _ClassVar[int] - cpu_millicores: int - memory_bytes: int - disk_bytes: int - device_type: AcceleratorType - device_variant: str - device_count: int - preemptible: bool - def __init__(self, cpu_millicores: _Optional[int] = ..., memory_bytes: _Optional[int] = ..., disk_bytes: _Optional[int] = ..., device_type: _Optional[_Union[AcceleratorType, str]] = ..., device_variant: _Optional[str] = ..., device_count: _Optional[int] = ..., preemptible: _Optional[bool] = ...) -> None: ... - -class WorkerSettings(_message.Message): - __slots__ = ("attributes", "env") - class AttributesEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - class EnvEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] - ENV_FIELD_NUMBER: _ClassVar[int] - attributes: _containers.ScalarMap[str, str] - env: _containers.ScalarMap[str, str] - def __init__(self, attributes: _Optional[_Mapping[str, str]] = ..., env: _Optional[_Mapping[str, str]] = ...) -> None: ... - -class ScaleGroupConfig(_message.Message): - __slots__ = ("name", "min_slices", "max_slices", "resources", "num_vms", "priority", "scale_up_rate_limit", "scale_down_rate_limit", "slice_template", "worker") - NAME_FIELD_NUMBER: _ClassVar[int] - MIN_SLICES_FIELD_NUMBER: _ClassVar[int] - MAX_SLICES_FIELD_NUMBER: _ClassVar[int] - RESOURCES_FIELD_NUMBER: _ClassVar[int] - NUM_VMS_FIELD_NUMBER: _ClassVar[int] - PRIORITY_FIELD_NUMBER: _ClassVar[int] - SCALE_UP_RATE_LIMIT_FIELD_NUMBER: _ClassVar[int] - SCALE_DOWN_RATE_LIMIT_FIELD_NUMBER: _ClassVar[int] - SLICE_TEMPLATE_FIELD_NUMBER: _ClassVar[int] - WORKER_FIELD_NUMBER: _ClassVar[int] - name: str - min_slices: int - max_slices: int - resources: ScaleGroupResources - num_vms: int - priority: int - scale_up_rate_limit: int - scale_down_rate_limit: int - slice_template: SliceConfig - worker: WorkerSettings - def __init__(self, name: _Optional[str] = ..., min_slices: _Optional[int] = ..., max_slices: _Optional[int] = ..., resources: _Optional[_Union[ScaleGroupResources, _Mapping]] = ..., num_vms: _Optional[int] = ..., priority: _Optional[int] = ..., scale_up_rate_limit: _Optional[int] = ..., scale_down_rate_limit: _Optional[int] = ..., slice_template: _Optional[_Union[SliceConfig, _Mapping]] = ..., worker: _Optional[_Union[WorkerSettings, _Mapping]] = ...) -> None: ... - -class WorkerConfig(_message.Message): - __slots__ = ("docker_image", "host", "port", "port_range", "worker_id", "controller_address", "cache_dir", "default_task_image", "default_task_env", "runtime", "accelerator_type", "accelerator_variant", "gpu_count", "preemptible", "worker_attributes", "poll_interval", "heartbeat_timeout", "slice_id", "platform", "storage_prefix", "auth_token") - class DefaultTaskEnvEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - class WorkerAttributesEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - DOCKER_IMAGE_FIELD_NUMBER: _ClassVar[int] - HOST_FIELD_NUMBER: _ClassVar[int] - PORT_FIELD_NUMBER: _ClassVar[int] - PORT_RANGE_FIELD_NUMBER: _ClassVar[int] - WORKER_ID_FIELD_NUMBER: _ClassVar[int] - CONTROLLER_ADDRESS_FIELD_NUMBER: _ClassVar[int] - CACHE_DIR_FIELD_NUMBER: _ClassVar[int] - DEFAULT_TASK_IMAGE_FIELD_NUMBER: _ClassVar[int] - DEFAULT_TASK_ENV_FIELD_NUMBER: _ClassVar[int] - RUNTIME_FIELD_NUMBER: _ClassVar[int] - ACCELERATOR_TYPE_FIELD_NUMBER: _ClassVar[int] - ACCELERATOR_VARIANT_FIELD_NUMBER: _ClassVar[int] - GPU_COUNT_FIELD_NUMBER: _ClassVar[int] - PREEMPTIBLE_FIELD_NUMBER: _ClassVar[int] - WORKER_ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] - POLL_INTERVAL_FIELD_NUMBER: _ClassVar[int] - HEARTBEAT_TIMEOUT_FIELD_NUMBER: _ClassVar[int] - SLICE_ID_FIELD_NUMBER: _ClassVar[int] - PLATFORM_FIELD_NUMBER: _ClassVar[int] - STORAGE_PREFIX_FIELD_NUMBER: _ClassVar[int] - AUTH_TOKEN_FIELD_NUMBER: _ClassVar[int] - docker_image: str - host: str - port: int - port_range: str - worker_id: str - controller_address: str - cache_dir: str - default_task_image: str - default_task_env: _containers.ScalarMap[str, str] - runtime: str - accelerator_type: AcceleratorType - accelerator_variant: str - gpu_count: int - preemptible: bool - worker_attributes: _containers.ScalarMap[str, str] - poll_interval: _time_pb2.Duration - heartbeat_timeout: _time_pb2.Duration - slice_id: str - platform: PlatformConfig - storage_prefix: str - auth_token: str - def __init__(self, docker_image: _Optional[str] = ..., host: _Optional[str] = ..., port: _Optional[int] = ..., port_range: _Optional[str] = ..., worker_id: _Optional[str] = ..., controller_address: _Optional[str] = ..., cache_dir: _Optional[str] = ..., default_task_image: _Optional[str] = ..., default_task_env: _Optional[_Mapping[str, str]] = ..., runtime: _Optional[str] = ..., accelerator_type: _Optional[_Union[AcceleratorType, str]] = ..., accelerator_variant: _Optional[str] = ..., gpu_count: _Optional[int] = ..., preemptible: _Optional[bool] = ..., worker_attributes: _Optional[_Mapping[str, str]] = ..., poll_interval: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ..., heartbeat_timeout: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ..., slice_id: _Optional[str] = ..., platform: _Optional[_Union[PlatformConfig, _Mapping]] = ..., storage_prefix: _Optional[str] = ..., auth_token: _Optional[str] = ...) -> None: ... - -class SshConfig(_message.Message): - __slots__ = ("user", "key_file", "port", "connect_timeout") - USER_FIELD_NUMBER: _ClassVar[int] - KEY_FILE_FIELD_NUMBER: _ClassVar[int] - PORT_FIELD_NUMBER: _ClassVar[int] - CONNECT_TIMEOUT_FIELD_NUMBER: _ClassVar[int] - user: str - key_file: str - port: int - connect_timeout: _time_pb2.Duration - def __init__(self, user: _Optional[str] = ..., key_file: _Optional[str] = ..., port: _Optional[int] = ..., connect_timeout: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ...) -> None: ... - -class StorageConfig(_message.Message): - __slots__ = ("local_state_dir", "remote_state_dir") - LOCAL_STATE_DIR_FIELD_NUMBER: _ClassVar[int] - REMOTE_STATE_DIR_FIELD_NUMBER: _ClassVar[int] - local_state_dir: str - remote_state_dir: str - def __init__(self, local_state_dir: _Optional[str] = ..., remote_state_dir: _Optional[str] = ...) -> None: ... - -class GcpControllerConfig(_message.Message): - __slots__ = ("zone", "machine_type", "boot_disk_size_gb", "port") - ZONE_FIELD_NUMBER: _ClassVar[int] - MACHINE_TYPE_FIELD_NUMBER: _ClassVar[int] - BOOT_DISK_SIZE_GB_FIELD_NUMBER: _ClassVar[int] - PORT_FIELD_NUMBER: _ClassVar[int] - zone: str - machine_type: str - boot_disk_size_gb: int - port: int - def __init__(self, zone: _Optional[str] = ..., machine_type: _Optional[str] = ..., boot_disk_size_gb: _Optional[int] = ..., port: _Optional[int] = ...) -> None: ... - -class ManualControllerConfig(_message.Message): - __slots__ = ("host", "port") - HOST_FIELD_NUMBER: _ClassVar[int] - PORT_FIELD_NUMBER: _ClassVar[int] - host: str - port: int - def __init__(self, host: _Optional[str] = ..., port: _Optional[int] = ...) -> None: ... - -class LocalControllerConfig(_message.Message): - __slots__ = ("port",) - PORT_FIELD_NUMBER: _ClassVar[int] - port: int - def __init__(self, port: _Optional[int] = ...) -> None: ... - -class CoreweaveControllerConfig(_message.Message): - __slots__ = ("port", "service_name", "scale_group") - PORT_FIELD_NUMBER: _ClassVar[int] - SERVICE_NAME_FIELD_NUMBER: _ClassVar[int] - SCALE_GROUP_FIELD_NUMBER: _ClassVar[int] - port: int - service_name: str - scale_group: str - def __init__(self, port: _Optional[int] = ..., service_name: _Optional[str] = ..., scale_group: _Optional[str] = ...) -> None: ... - -class ControllerVmConfig(_message.Message): - __slots__ = ("image", "worker_timeout", "heartbeat_failure_threshold", "gcp", "manual", "local", "coreweave") - IMAGE_FIELD_NUMBER: _ClassVar[int] - WORKER_TIMEOUT_FIELD_NUMBER: _ClassVar[int] - HEARTBEAT_FAILURE_THRESHOLD_FIELD_NUMBER: _ClassVar[int] - GCP_FIELD_NUMBER: _ClassVar[int] - MANUAL_FIELD_NUMBER: _ClassVar[int] - LOCAL_FIELD_NUMBER: _ClassVar[int] - COREWEAVE_FIELD_NUMBER: _ClassVar[int] - image: str - worker_timeout: _time_pb2.Duration - heartbeat_failure_threshold: int - gcp: GcpControllerConfig - manual: ManualControllerConfig - local: LocalControllerConfig - coreweave: CoreweaveControllerConfig - def __init__(self, image: _Optional[str] = ..., worker_timeout: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ..., heartbeat_failure_threshold: _Optional[int] = ..., gcp: _Optional[_Union[GcpControllerConfig, _Mapping]] = ..., manual: _Optional[_Union[ManualControllerConfig, _Mapping]] = ..., local: _Optional[_Union[LocalControllerConfig, _Mapping]] = ..., coreweave: _Optional[_Union[CoreweaveControllerConfig, _Mapping]] = ...) -> None: ... - -class AutoscalerConfig(_message.Message): - __slots__ = ("evaluation_interval", "scale_up_delay", "scale_down_delay", "startup_grace_period", "heartbeat_grace_period") - EVALUATION_INTERVAL_FIELD_NUMBER: _ClassVar[int] - SCALE_UP_DELAY_FIELD_NUMBER: _ClassVar[int] - SCALE_DOWN_DELAY_FIELD_NUMBER: _ClassVar[int] - STARTUP_GRACE_PERIOD_FIELD_NUMBER: _ClassVar[int] - HEARTBEAT_GRACE_PERIOD_FIELD_NUMBER: _ClassVar[int] - evaluation_interval: _time_pb2.Duration - scale_up_delay: _time_pb2.Duration - scale_down_delay: _time_pb2.Duration - startup_grace_period: _time_pb2.Duration - heartbeat_grace_period: _time_pb2.Duration - def __init__(self, evaluation_interval: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ..., scale_up_delay: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ..., scale_down_delay: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ..., startup_grace_period: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ..., heartbeat_grace_period: _Optional[_Union[_time_pb2.Duration, _Mapping]] = ...) -> None: ... - -class DefaultsConfig(_message.Message): - __slots__ = ("ssh", "autoscaler", "worker") - SSH_FIELD_NUMBER: _ClassVar[int] - AUTOSCALER_FIELD_NUMBER: _ClassVar[int] - WORKER_FIELD_NUMBER: _ClassVar[int] - ssh: SshConfig - autoscaler: AutoscalerConfig - worker: WorkerConfig - def __init__(self, ssh: _Optional[_Union[SshConfig, _Mapping]] = ..., autoscaler: _Optional[_Union[AutoscalerConfig, _Mapping]] = ..., worker: _Optional[_Union[WorkerConfig, _Mapping]] = ...) -> None: ... - -class GcpAuthConfig(_message.Message): - __slots__ = ("project_id",) - PROJECT_ID_FIELD_NUMBER: _ClassVar[int] - project_id: str - def __init__(self, project_id: _Optional[str] = ...) -> None: ... - -class StaticAuthConfig(_message.Message): - __slots__ = ("tokens",) - class TokensEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - TOKENS_FIELD_NUMBER: _ClassVar[int] - tokens: _containers.ScalarMap[str, str] - def __init__(self, tokens: _Optional[_Mapping[str, str]] = ...) -> None: ... - -class AuthConfig(_message.Message): - __slots__ = ("gcp", "static", "admin_users") - GCP_FIELD_NUMBER: _ClassVar[int] - STATIC_FIELD_NUMBER: _ClassVar[int] - ADMIN_USERS_FIELD_NUMBER: _ClassVar[int] - gcp: GcpAuthConfig - static: StaticAuthConfig - admin_users: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, gcp: _Optional[_Union[GcpAuthConfig, _Mapping]] = ..., static: _Optional[_Union[StaticAuthConfig, _Mapping]] = ..., admin_users: _Optional[_Iterable[str]] = ...) -> None: ... - -class IrisClusterConfig(_message.Message): - __slots__ = ("name", "platform", "defaults", "storage", "controller", "scale_groups", "auth") - class ScaleGroupsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: ScaleGroupConfig - def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[ScaleGroupConfig, _Mapping]] = ...) -> None: ... - NAME_FIELD_NUMBER: _ClassVar[int] - PLATFORM_FIELD_NUMBER: _ClassVar[int] - DEFAULTS_FIELD_NUMBER: _ClassVar[int] - STORAGE_FIELD_NUMBER: _ClassVar[int] - CONTROLLER_FIELD_NUMBER: _ClassVar[int] - SCALE_GROUPS_FIELD_NUMBER: _ClassVar[int] - AUTH_FIELD_NUMBER: _ClassVar[int] - name: str - platform: PlatformConfig - defaults: DefaultsConfig - storage: StorageConfig - controller: ControllerVmConfig - scale_groups: _containers.MessageMap[str, ScaleGroupConfig] - auth: AuthConfig - def __init__(self, name: _Optional[str] = ..., platform: _Optional[_Union[PlatformConfig, _Mapping]] = ..., defaults: _Optional[_Union[DefaultsConfig, _Mapping]] = ..., storage: _Optional[_Union[StorageConfig, _Mapping]] = ..., controller: _Optional[_Union[ControllerVmConfig, _Mapping]] = ..., scale_groups: _Optional[_Mapping[str, ScaleGroupConfig]] = ..., auth: _Optional[_Union[AuthConfig, _Mapping]] = ...) -> None: ... diff --git a/lib/iris/src/iris/rpc/errors_pb2.py b/lib/iris/src/iris/rpc/errors_pb2.py deleted file mode 100644 index 0f136aeb08..0000000000 --- a/lib/iris/src/iris/rpc/errors_pb2.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: errors.proto -# Protobuf Python Version: 6.33.4 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 33, - 4, - '', - 'errors.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from . import time_pb2 as time__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x65rrors.proto\x12\x08iris.rpc\x1a\ntime.proto\"\xa1\x01\n\x0c\x45rrorDetails\x12%\n\x0e\x65xception_type\x18\x01 \x01(\tR\rexceptionType\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x1c\n\ttraceback\x18\x03 \x01(\tR\ttraceback\x12\x32\n\ttimestamp\x18\x04 \x01(\x0b\x32\x14.iris.time.TimestampR\ttimestampB\\\n\x0c\x63om.iris.rpcB\x0b\x45rrorsProtoP\x01\xa2\x02\x03IRX\xaa\x02\x08Iris.Rpc\xca\x02\x08Iris\\Rpc\xe2\x02\x14Iris\\Rpc\\GPBMetadata\xea\x02\tIris::Rpcb\x08\x65\x64itionsp\xe8\x07') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'errors_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\014com.iris.rpcB\013ErrorsProtoP\001\242\002\003IRX\252\002\010Iris.Rpc\312\002\010Iris\\Rpc\342\002\024Iris\\Rpc\\GPBMetadata\352\002\tIris::Rpc' - _globals['_ERRORDETAILS']._serialized_start=39 - _globals['_ERRORDETAILS']._serialized_end=200 -# @@protoc_insertion_point(module_scope) diff --git a/lib/iris/src/iris/rpc/errors_pb2.pyi b/lib/iris/src/iris/rpc/errors_pb2.pyi deleted file mode 100644 index 8deb76e320..0000000000 --- a/lib/iris/src/iris/rpc/errors_pb2.pyi +++ /dev/null @@ -1,19 +0,0 @@ -from . import time_pb2 as _time_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from collections.abc import Mapping as _Mapping -from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class ErrorDetails(_message.Message): - __slots__ = ("exception_type", "message", "traceback", "timestamp") - EXCEPTION_TYPE_FIELD_NUMBER: _ClassVar[int] - MESSAGE_FIELD_NUMBER: _ClassVar[int] - TRACEBACK_FIELD_NUMBER: _ClassVar[int] - TIMESTAMP_FIELD_NUMBER: _ClassVar[int] - exception_type: str - message: str - traceback: str - timestamp: _time_pb2.Timestamp - def __init__(self, exception_type: _Optional[str] = ..., message: _Optional[str] = ..., traceback: _Optional[str] = ..., timestamp: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ...) -> None: ... diff --git a/lib/iris/src/iris/rpc/logging_pb2.py b/lib/iris/src/iris/rpc/logging_pb2.py deleted file mode 100644 index 4de9073573..0000000000 --- a/lib/iris/src/iris/rpc/logging_pb2.py +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: logging.proto -# Protobuf Python Version: 6.33.4 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 33, - 4, - '', - 'logging.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from . import time_pb2 as time__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rlogging.proto\x12\x0ciris.logging\x1a\ntime.proto\"\xb7\x01\n\x08LogEntry\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x14.iris.time.TimestampR\ttimestamp\x12\x16\n\x06source\x18\x02 \x01(\tR\x06source\x12\x12\n\x04\x64\x61ta\x18\x03 \x01(\tR\x04\x64\x61ta\x12\x1d\n\nattempt_id\x18\x04 \x01(\x05R\tattemptId\x12,\n\x05level\x18\x05 \x01(\x0e\x32\x16.iris.logging.LogLevelR\x05level\"<\n\x08LogBatch\x12\x30\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x16.iris.logging.LogEntryR\x07\x65ntries\"\x8d\x03\n\x13TaskAttemptMetadata\x12\x17\n\x07task_id\x18\x01 \x01(\tR\x06taskId\x12\x1d\n\nattempt_id\x18\x02 \x01(\x05R\tattemptId\x12\x1b\n\tworker_id\x18\x03 \x01(\tR\x08workerId\x12\x33\n\nstart_time\x18\x04 \x01(\x0b\x32\x14.iris.time.TimestampR\tstartTime\x12/\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x14.iris.time.TimestampR\x07\x65ndTime\x12\x1b\n\texit_code\x18\x06 \x01(\x05R\x08\x65xitCode\x12\x1d\n\noom_killed\x18\x07 \x01(\x08R\toomKilled\x12\x16\n\x06status\x18\x08 \x01(\x05R\x06status\x12#\n\rerror_message\x18\t \x01(\tR\x0c\x65rrorMessage\x12\x42\n\x0eresource_usage\x18\n \x01(\x0b\x32\x1b.iris.logging.ResourceUsageR\rresourceUsage\"\x86\x01\n\rResourceUsage\x12*\n\x11peak_memory_bytes\x18\x01 \x01(\x03R\x0fpeakMemoryBytes\x12\x1f\n\x0b\x63pu_seconds\x18\x02 \x01(\x01R\ncpuSeconds\x12(\n\x10gpu_memory_bytes\x18\x03 \x01(\x03R\x0egpuMemoryBytes*\x8e\x01\n\x08LogLevel\x12\x15\n\x11LOG_LEVEL_UNKNOWN\x10\x00\x12\x13\n\x0fLOG_LEVEL_DEBUG\x10\x01\x12\x12\n\x0eLOG_LEVEL_INFO\x10\x02\x12\x15\n\x11LOG_LEVEL_WARNING\x10\x03\x12\x13\n\x0fLOG_LEVEL_ERROR\x10\x04\x12\x16\n\x12LOG_LEVEL_CRITICAL\x10\x05\x42q\n\x10\x63om.iris.loggingB\x0cLoggingProtoP\x01\xa2\x02\x03ILX\xaa\x02\x0cIris.Logging\xca\x02\x0cIris\\Logging\xe2\x02\x18Iris\\Logging\\GPBMetadata\xea\x02\rIris::Loggingb\x08\x65\x64itionsp\xe8\x07') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'logging_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\020com.iris.loggingB\014LoggingProtoP\001\242\002\003ILX\252\002\014Iris.Logging\312\002\014Iris\\Logging\342\002\030Iris\\Logging\\GPBMetadata\352\002\rIris::Logging' - _globals['_LOGLEVEL']._serialized_start=829 - _globals['_LOGLEVEL']._serialized_end=971 - _globals['_LOGENTRY']._serialized_start=44 - _globals['_LOGENTRY']._serialized_end=227 - _globals['_LOGBATCH']._serialized_start=229 - _globals['_LOGBATCH']._serialized_end=289 - _globals['_TASKATTEMPTMETADATA']._serialized_start=292 - _globals['_TASKATTEMPTMETADATA']._serialized_end=689 - _globals['_RESOURCEUSAGE']._serialized_start=692 - _globals['_RESOURCEUSAGE']._serialized_end=826 -# @@protoc_insertion_point(module_scope) diff --git a/lib/iris/src/iris/rpc/logging_pb2.pyi b/lib/iris/src/iris/rpc/logging_pb2.pyi deleted file mode 100644 index 8fd0b25975..0000000000 --- a/lib/iris/src/iris/rpc/logging_pb2.pyi +++ /dev/null @@ -1,78 +0,0 @@ -from . import time_pb2 as _time_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from collections.abc import Iterable as _Iterable, Mapping as _Mapping -from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class LogLevel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - LOG_LEVEL_UNKNOWN: _ClassVar[LogLevel] - LOG_LEVEL_DEBUG: _ClassVar[LogLevel] - LOG_LEVEL_INFO: _ClassVar[LogLevel] - LOG_LEVEL_WARNING: _ClassVar[LogLevel] - LOG_LEVEL_ERROR: _ClassVar[LogLevel] - LOG_LEVEL_CRITICAL: _ClassVar[LogLevel] -LOG_LEVEL_UNKNOWN: LogLevel -LOG_LEVEL_DEBUG: LogLevel -LOG_LEVEL_INFO: LogLevel -LOG_LEVEL_WARNING: LogLevel -LOG_LEVEL_ERROR: LogLevel -LOG_LEVEL_CRITICAL: LogLevel - -class LogEntry(_message.Message): - __slots__ = ("timestamp", "source", "data", "attempt_id", "level") - TIMESTAMP_FIELD_NUMBER: _ClassVar[int] - SOURCE_FIELD_NUMBER: _ClassVar[int] - DATA_FIELD_NUMBER: _ClassVar[int] - ATTEMPT_ID_FIELD_NUMBER: _ClassVar[int] - LEVEL_FIELD_NUMBER: _ClassVar[int] - timestamp: _time_pb2.Timestamp - source: str - data: str - attempt_id: int - level: LogLevel - def __init__(self, timestamp: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., source: _Optional[str] = ..., data: _Optional[str] = ..., attempt_id: _Optional[int] = ..., level: _Optional[_Union[LogLevel, str]] = ...) -> None: ... - -class LogBatch(_message.Message): - __slots__ = ("entries",) - ENTRIES_FIELD_NUMBER: _ClassVar[int] - entries: _containers.RepeatedCompositeFieldContainer[LogEntry] - def __init__(self, entries: _Optional[_Iterable[_Union[LogEntry, _Mapping]]] = ...) -> None: ... - -class TaskAttemptMetadata(_message.Message): - __slots__ = ("task_id", "attempt_id", "worker_id", "start_time", "end_time", "exit_code", "oom_killed", "status", "error_message", "resource_usage") - TASK_ID_FIELD_NUMBER: _ClassVar[int] - ATTEMPT_ID_FIELD_NUMBER: _ClassVar[int] - WORKER_ID_FIELD_NUMBER: _ClassVar[int] - START_TIME_FIELD_NUMBER: _ClassVar[int] - END_TIME_FIELD_NUMBER: _ClassVar[int] - EXIT_CODE_FIELD_NUMBER: _ClassVar[int] - OOM_KILLED_FIELD_NUMBER: _ClassVar[int] - STATUS_FIELD_NUMBER: _ClassVar[int] - ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int] - RESOURCE_USAGE_FIELD_NUMBER: _ClassVar[int] - task_id: str - attempt_id: int - worker_id: str - start_time: _time_pb2.Timestamp - end_time: _time_pb2.Timestamp - exit_code: int - oom_killed: bool - status: int - error_message: str - resource_usage: ResourceUsage - def __init__(self, task_id: _Optional[str] = ..., attempt_id: _Optional[int] = ..., worker_id: _Optional[str] = ..., start_time: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., end_time: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., exit_code: _Optional[int] = ..., oom_killed: _Optional[bool] = ..., status: _Optional[int] = ..., error_message: _Optional[str] = ..., resource_usage: _Optional[_Union[ResourceUsage, _Mapping]] = ...) -> None: ... - -class ResourceUsage(_message.Message): - __slots__ = ("peak_memory_bytes", "cpu_seconds", "gpu_memory_bytes") - PEAK_MEMORY_BYTES_FIELD_NUMBER: _ClassVar[int] - CPU_SECONDS_FIELD_NUMBER: _ClassVar[int] - GPU_MEMORY_BYTES_FIELD_NUMBER: _ClassVar[int] - peak_memory_bytes: int - cpu_seconds: float - gpu_memory_bytes: int - def __init__(self, peak_memory_bytes: _Optional[int] = ..., cpu_seconds: _Optional[float] = ..., gpu_memory_bytes: _Optional[int] = ...) -> None: ... diff --git a/lib/iris/src/iris/rpc/time_pb2.py b/lib/iris/src/iris/rpc/time_pb2.py deleted file mode 100644 index 6cbccf3682..0000000000 --- a/lib/iris/src/iris/rpc/time_pb2.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: time.proto -# Protobuf Python Version: 6.33.4 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 33, - 4, - '', - 'time.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\ntime.proto\x12\tiris.time\"&\n\tTimestamp\x12\x19\n\x08\x65poch_ms\x18\x01 \x01(\x03R\x07\x65pochMs\".\n\x08\x44uration\x12\"\n\x0cmilliseconds\x18\x01 \x01(\x03R\x0cmillisecondsB_\n\rcom.iris.timeB\tTimeProtoP\x01\xa2\x02\x03ITX\xaa\x02\tIris.Time\xca\x02\tIris\\Time\xe2\x02\x15Iris\\Time\\GPBMetadata\xea\x02\nIris::Timeb\x08\x65\x64itionsp\xe8\x07') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'time_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\rcom.iris.timeB\tTimeProtoP\001\242\002\003ITX\252\002\tIris.Time\312\002\tIris\\Time\342\002\025Iris\\Time\\GPBMetadata\352\002\nIris::Time' - _globals['_TIMESTAMP']._serialized_start=25 - _globals['_TIMESTAMP']._serialized_end=63 - _globals['_DURATION']._serialized_start=65 - _globals['_DURATION']._serialized_end=111 -# @@protoc_insertion_point(module_scope) diff --git a/lib/iris/src/iris/rpc/time_pb2.pyi b/lib/iris/src/iris/rpc/time_pb2.pyi deleted file mode 100644 index 95c05d60ff..0000000000 --- a/lib/iris/src/iris/rpc/time_pb2.pyi +++ /dev/null @@ -1,17 +0,0 @@ -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Optional as _Optional - -DESCRIPTOR: _descriptor.FileDescriptor - -class Timestamp(_message.Message): - __slots__ = ("epoch_ms",) - EPOCH_MS_FIELD_NUMBER: _ClassVar[int] - epoch_ms: int - def __init__(self, epoch_ms: _Optional[int] = ...) -> None: ... - -class Duration(_message.Message): - __slots__ = ("milliseconds",) - MILLISECONDS_FIELD_NUMBER: _ClassVar[int] - milliseconds: int - def __init__(self, milliseconds: _Optional[int] = ...) -> None: ... diff --git a/lib/iris/src/iris/rpc/vm_pb2.py b/lib/iris/src/iris/rpc/vm_pb2.py deleted file mode 100644 index e9f5599d4c..0000000000 --- a/lib/iris/src/iris/rpc/vm_pb2.py +++ /dev/null @@ -1,89 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: vm.proto -# Protobuf Python Version: 6.33.4 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 33, - 4, - '', - 'vm.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from . import time_pb2 as time__pb2 -from . import config_pb2 as config__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x08vm.proto\x12\x07iris.vm\x1a\ntime.proto\x1a\x0c\x63onfig.proto\"\xb1\x01\n\x0cResourceSpec\x12%\n\x0e\x63pu_millicores\x18\x01 \x01(\x05R\rcpuMillicores\x12!\n\x0cmemory_bytes\x18\x02 \x01(\x03R\x0bmemoryBytes\x12\x1d\n\ndisk_bytes\x18\x03 \x01(\x03R\tdiskBytes\x12\x1b\n\tgpu_count\x18\x04 \x01(\x05R\x08gpuCount\x12\x1b\n\ttpu_count\x18\x05 \x01(\x05R\x08tpuCount\"\xe8\x04\n\x06VmInfo\x12\x13\n\x05vm_id\x18\x01 \x01(\tR\x04vmId\x12\x19\n\x08slice_id\x18\x02 \x01(\tR\x07sliceId\x12\x1f\n\x0bscale_group\x18\x03 \x01(\tR\nscaleGroup\x12&\n\x05state\x18\x04 \x01(\x0e\x32\x10.iris.vm.VmStateR\x05state\x12\x18\n\x07\x61\x64\x64ress\x18\x05 \x01(\tR\x07\x61\x64\x64ress\x12\x12\n\x04zone\x18\x06 \x01(\tR\x04zone\x12\x33\n\ncreated_at\x18\x07 \x01(\x0b\x32\x14.iris.time.TimestampR\tcreatedAt\x12>\n\x10state_changed_at\x18\x08 \x01(\x0b\x32\x14.iris.time.TimestampR\x0estateChangedAt\x12\x1b\n\tworker_id\x18\n \x01(\tR\x08workerId\x12%\n\x0eworker_healthy\x18\x0b \x01(\x08R\rworkerHealthy\x12\x1d\n\ninit_phase\x18\x14 \x01(\tR\tinitPhase\x12\"\n\rinit_log_tail\x18\x15 \x01(\tR\x0binitLogTail\x12\x1d\n\ninit_error\x18\x16 \x01(\tR\tinitError\x12,\n\x12running_task_count\x18\x19 \x01(\x05R\x10runningTaskCount\x12\x33\n\x06labels\x18\x1e \x03(\x0b\x32\x1b.iris.vm.VmInfo.LabelsEntryR\x06labels\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x8f\x02\n\tSliceInfo\x12\x19\n\x08slice_id\x18\x01 \x01(\tR\x07sliceId\x12\x1f\n\x0bscale_group\x18\x02 \x01(\tR\nscaleGroup\x12\x33\n\ncreated_at\x18\x03 \x01(\x0b\x32\x14.iris.time.TimestampR\tcreatedAt\x12!\n\x03vms\x18\x04 \x03(\x0b\x32\x0f.iris.vm.VmInfoR\x03vms\x12#\n\rerror_message\x18\x05 \x01(\tR\x0c\x65rrorMessage\x12\x35\n\x0blast_active\x18\x06 \x01(\x0b\x32\x14.iris.time.TimestampR\nlastActive\x12\x12\n\x04idle\x18\x07 \x01(\x08R\x04idle\"\x9b\x01\n\x0fScalingDecision\x12\x1f\n\x0bscale_group\x18\x01 \x01(\tR\nscaleGroup\x12.\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32\x16.iris.vm.ScalingActionR\x06\x61\x63tion\x12\x1f\n\x0bslice_delta\x18\x03 \x01(\x05R\nsliceDelta\x12\x16\n\x06reason\x18\x04 \x01(\tR\x06reason\"\xf1\x06\n\x10ScaleGroupStatus\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x35\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x1d.iris.config.ScaleGroupConfigR\x06\x63onfig\x12%\n\x0e\x63urrent_demand\x18\x14 \x01(\x05R\rcurrentDemand\x12\x1f\n\x0bpeak_demand\x18\x15 \x01(\x05R\npeakDemand\x12\x39\n\rbackoff_until\x18\x1e \x01(\x0b\x32\x14.iris.time.TimestampR\x0c\x62\x61\x63koffUntil\x12\x31\n\x14\x63onsecutive_failures\x18\x1f \x01(\x05R\x13\x63onsecutiveFailures\x12\x38\n\rlast_scale_up\x18( \x01(\x0b\x32\x14.iris.time.TimestampR\x0blastScaleUp\x12<\n\x0flast_scale_down\x18) \x01(\x0b\x32\x14.iris.time.TimestampR\rlastScaleDown\x12*\n\x06slices\x18\x32 \x03(\x0b\x32\x12.iris.vm.SliceInfoR\x06slices\x12]\n\x12slice_state_counts\x18< \x03(\x0b\x32/.iris.vm.ScaleGroupStatus.SliceStateCountsEntryR\x10sliceStateCounts\x12/\n\x13\x61vailability_status\x18= \x01(\tR\x12\x61vailabilityStatus\x12/\n\x13\x61vailability_reason\x18> \x01(\tR\x12\x61vailabilityReason\x12\x39\n\rblocked_until\x18? \x01(\x0b\x32\x14.iris.time.TimestampR\x0c\x62lockedUntil\x12K\n\x17scale_up_cooldown_until\x18\x46 \x01(\x0b\x32\x14.iris.time.TimestampR\x14scaleUpCooldownUntil\x12*\n\x11idle_threshold_ms\x18G \x01(\x03R\x0fidleThresholdMs\x1a\x43\n\x15SliceStateCountsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x05R\x05value:\x02\x38\x01\"\xd3\x01\n\x10\x41utoscalerAction\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x14.iris.time.TimestampR\ttimestamp\x12\x1f\n\x0b\x61\x63tion_type\x18\x02 \x01(\tR\nactionType\x12\x1f\n\x0bscale_group\x18\x03 \x01(\tR\nscaleGroup\x12\x19\n\x08slice_id\x18\x04 \x01(\tR\x07sliceId\x12\x16\n\x06reason\x18\x05 \x01(\tR\x06reason\x12\x16\n\x06status\x18\x06 \x01(\tR\x06status\"\x89\x02\n\x11\x44\x65mandEntryStatus\x12\x19\n\x08task_ids\x18\x01 \x03(\tR\x07taskIds\x12.\n\x13\x63oschedule_group_id\x18\x02 \x01(\tR\x11\x63oscheduleGroupId\x12\x1f\n\x0b\x64\x65vice_type\x18\x07 \x01(\tR\ndeviceType\x12%\n\x0e\x64\x65vice_variant\x18\x08 \x01(\tR\rdeviceVariant\x12 \n\x0bpreemptible\x18\x05 \x01(\x08R\x0bpreemptible\x12\x33\n\tresources\x18\x06 \x01(\x0b\x32\x15.iris.vm.ResourceSpecR\tresourcesJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\"W\n\x0bUnmetDemand\x12\x30\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x1a.iris.vm.DemandEntryStatusR\x05\x65ntry\x12\x16\n\x06reason\x18\x02 \x01(\tR\x06reason\"\xef\x04\n\x0fRoutingDecision\x12S\n\x0fgroup_to_launch\x18\x01 \x03(\x0b\x32+.iris.vm.RoutingDecision.GroupToLaunchEntryR\rgroupToLaunch\x12O\n\rgroup_reasons\x18\x02 \x03(\x0b\x32*.iris.vm.RoutingDecision.GroupReasonsEntryR\x0cgroupReasons\x12R\n\x0erouted_entries\x18\x03 \x03(\x0b\x32+.iris.vm.RoutingDecision.RoutedEntriesEntryR\rroutedEntries\x12\x39\n\runmet_entries\x18\x04 \x03(\x0b\x32\x14.iris.vm.UnmetDemandR\x0cunmetEntries\x12\x42\n\x0egroup_statuses\x18\x05 \x03(\x0b\x32\x1b.iris.vm.GroupRoutingStatusR\rgroupStatuses\x1a@\n\x12GroupToLaunchEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x05R\x05value:\x02\x38\x01\x1a?\n\x11GroupReasonsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a`\n\x12RoutedEntriesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32\x1e.iris.vm.DemandEntryStatusListR\x05value:\x02\x38\x01\"M\n\x15\x44\x65mandEntryStatusList\x12\x34\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1a.iris.vm.DemandEntryStatusR\x07\x65ntries\"\xae\x01\n\x12GroupRoutingStatus\x12\x14\n\x05group\x18\x01 \x01(\tR\x05group\x12\x1a\n\x08priority\x18\x02 \x01(\x05R\x08priority\x12\x1a\n\x08\x61ssigned\x18\x03 \x01(\x05R\x08\x61ssigned\x12\x16\n\x06launch\x18\x04 \x01(\x05R\x06launch\x12\x1a\n\x08\x64\x65\x63ision\x18\x05 \x01(\tR\x08\x64\x65\x63ision\x12\x16\n\x06reason\x18\x06 \x01(\tR\x06reason\"\xab\x03\n\x10\x41utoscalerStatus\x12\x31\n\x06groups\x18\x01 \x03(\x0b\x32\x19.iris.vm.ScaleGroupStatusR\x06groups\x12S\n\x0e\x63urrent_demand\x18\x02 \x03(\x0b\x32,.iris.vm.AutoscalerStatus.CurrentDemandEntryR\rcurrentDemand\x12=\n\x0flast_evaluation\x18\x03 \x01(\x0b\x32\x14.iris.time.TimestampR\x0elastEvaluation\x12@\n\x0erecent_actions\x18\x04 \x03(\x0b\x32\x19.iris.vm.AutoscalerActionR\rrecentActions\x12L\n\x15last_routing_decision\x18\x05 \x01(\x0b\x32\x18.iris.vm.RoutingDecisionR\x13lastRoutingDecision\x1a@\n\x12\x43urrentDemandEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x05R\x05value:\x02\x38\x01*\xf6\x01\n\x07VmState\x12\x18\n\x14VM_STATE_UNSPECIFIED\x10\x00\x12\x14\n\x10VM_STATE_BOOTING\x10\x01\x12\x19\n\x15VM_STATE_INITIALIZING\x10\x02\x12\x12\n\x0eVM_STATE_READY\x10\x03\x12\x16\n\x12VM_STATE_UNHEALTHY\x10\x04\x12\x15\n\x11VM_STATE_STOPPING\x10\x05\x12\x17\n\x13VM_STATE_TERMINATED\x10\x06\x12\x13\n\x0fVM_STATE_FAILED\x10\x07\x12\x16\n\x12VM_STATE_PREEMPTED\x10\x08\x12\x17\n\x13VM_STATE_REQUESTING\x10\t*\x84\x01\n\rScalingAction\x12\x1e\n\x1aSCALING_ACTION_UNSPECIFIED\x10\x00\x12\x1b\n\x17SCALING_ACTION_SCALE_UP\x10\x01\x12\x1d\n\x19SCALING_ACTION_SCALE_DOWN\x10\x02\x12\x17\n\x13SCALING_ACTION_NONE\x10\x03\x42S\n\x0b\x63om.iris.vmB\x07VmProtoP\x01\xa2\x02\x03IVX\xaa\x02\x07Iris.Vm\xca\x02\x07Iris\\Vm\xe2\x02\x13Iris\\Vm\\GPBMetadata\xea\x02\x08Iris::Vmb\x08\x65\x64itionsp\xe8\x07') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'vm_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\013com.iris.vmB\007VmProtoP\001\242\002\003IVX\252\002\007Iris.Vm\312\002\007Iris\\Vm\342\002\023Iris\\Vm\\GPBMetadata\352\002\010Iris::Vm' - _globals['_VMINFO_LABELSENTRY']._loaded_options = None - _globals['_VMINFO_LABELSENTRY']._serialized_options = b'8\001' - _globals['_SCALEGROUPSTATUS_SLICESTATECOUNTSENTRY']._loaded_options = None - _globals['_SCALEGROUPSTATUS_SLICESTATECOUNTSENTRY']._serialized_options = b'8\001' - _globals['_ROUTINGDECISION_GROUPTOLAUNCHENTRY']._loaded_options = None - _globals['_ROUTINGDECISION_GROUPTOLAUNCHENTRY']._serialized_options = b'8\001' - _globals['_ROUTINGDECISION_GROUPREASONSENTRY']._loaded_options = None - _globals['_ROUTINGDECISION_GROUPREASONSENTRY']._serialized_options = b'8\001' - _globals['_ROUTINGDECISION_ROUTEDENTRIESENTRY']._loaded_options = None - _globals['_ROUTINGDECISION_ROUTEDENTRIESENTRY']._serialized_options = b'8\001' - _globals['_AUTOSCALERSTATUS_CURRENTDEMANDENTRY']._loaded_options = None - _globals['_AUTOSCALERSTATUS_CURRENTDEMANDENTRY']._serialized_options = b'8\001' - _globals['_VMSTATE']._serialized_start=4046 - _globals['_VMSTATE']._serialized_end=4292 - _globals['_SCALINGACTION']._serialized_start=4295 - _globals['_SCALINGACTION']._serialized_end=4427 - _globals['_RESOURCESPEC']._serialized_start=48 - _globals['_RESOURCESPEC']._serialized_end=225 - _globals['_VMINFO']._serialized_start=228 - _globals['_VMINFO']._serialized_end=844 - _globals['_VMINFO_LABELSENTRY']._serialized_start=787 - _globals['_VMINFO_LABELSENTRY']._serialized_end=844 - _globals['_SLICEINFO']._serialized_start=847 - _globals['_SLICEINFO']._serialized_end=1118 - _globals['_SCALINGDECISION']._serialized_start=1121 - _globals['_SCALINGDECISION']._serialized_end=1276 - _globals['_SCALEGROUPSTATUS']._serialized_start=1279 - _globals['_SCALEGROUPSTATUS']._serialized_end=2160 - _globals['_SCALEGROUPSTATUS_SLICESTATECOUNTSENTRY']._serialized_start=2093 - _globals['_SCALEGROUPSTATUS_SLICESTATECOUNTSENTRY']._serialized_end=2160 - _globals['_AUTOSCALERACTION']._serialized_start=2163 - _globals['_AUTOSCALERACTION']._serialized_end=2374 - _globals['_DEMANDENTRYSTATUS']._serialized_start=2377 - _globals['_DEMANDENTRYSTATUS']._serialized_end=2642 - _globals['_UNMETDEMAND']._serialized_start=2644 - _globals['_UNMETDEMAND']._serialized_end=2731 - _globals['_ROUTINGDECISION']._serialized_start=2734 - _globals['_ROUTINGDECISION']._serialized_end=3357 - _globals['_ROUTINGDECISION_GROUPTOLAUNCHENTRY']._serialized_start=3130 - _globals['_ROUTINGDECISION_GROUPTOLAUNCHENTRY']._serialized_end=3194 - _globals['_ROUTINGDECISION_GROUPREASONSENTRY']._serialized_start=3196 - _globals['_ROUTINGDECISION_GROUPREASONSENTRY']._serialized_end=3259 - _globals['_ROUTINGDECISION_ROUTEDENTRIESENTRY']._serialized_start=3261 - _globals['_ROUTINGDECISION_ROUTEDENTRIESENTRY']._serialized_end=3357 - _globals['_DEMANDENTRYSTATUSLIST']._serialized_start=3359 - _globals['_DEMANDENTRYSTATUSLIST']._serialized_end=3436 - _globals['_GROUPROUTINGSTATUS']._serialized_start=3439 - _globals['_GROUPROUTINGSTATUS']._serialized_end=3613 - _globals['_AUTOSCALERSTATUS']._serialized_start=3616 - _globals['_AUTOSCALERSTATUS']._serialized_end=4043 - _globals['_AUTOSCALERSTATUS_CURRENTDEMANDENTRY']._serialized_start=3979 - _globals['_AUTOSCALERSTATUS_CURRENTDEMANDENTRY']._serialized_end=4043 -# @@protoc_insertion_point(module_scope) diff --git a/lib/iris/src/iris/rpc/vm_pb2.pyi b/lib/iris/src/iris/rpc/vm_pb2.pyi deleted file mode 100644 index 2a84335f31..0000000000 --- a/lib/iris/src/iris/rpc/vm_pb2.pyi +++ /dev/null @@ -1,288 +0,0 @@ -from . import time_pb2 as _time_pb2 -from . import config_pb2 as _config_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from collections.abc import Iterable as _Iterable, Mapping as _Mapping -from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class VmState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - VM_STATE_UNSPECIFIED: _ClassVar[VmState] - VM_STATE_BOOTING: _ClassVar[VmState] - VM_STATE_INITIALIZING: _ClassVar[VmState] - VM_STATE_READY: _ClassVar[VmState] - VM_STATE_UNHEALTHY: _ClassVar[VmState] - VM_STATE_STOPPING: _ClassVar[VmState] - VM_STATE_TERMINATED: _ClassVar[VmState] - VM_STATE_FAILED: _ClassVar[VmState] - VM_STATE_PREEMPTED: _ClassVar[VmState] - VM_STATE_REQUESTING: _ClassVar[VmState] - -class ScalingAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - SCALING_ACTION_UNSPECIFIED: _ClassVar[ScalingAction] - SCALING_ACTION_SCALE_UP: _ClassVar[ScalingAction] - SCALING_ACTION_SCALE_DOWN: _ClassVar[ScalingAction] - SCALING_ACTION_NONE: _ClassVar[ScalingAction] -VM_STATE_UNSPECIFIED: VmState -VM_STATE_BOOTING: VmState -VM_STATE_INITIALIZING: VmState -VM_STATE_READY: VmState -VM_STATE_UNHEALTHY: VmState -VM_STATE_STOPPING: VmState -VM_STATE_TERMINATED: VmState -VM_STATE_FAILED: VmState -VM_STATE_PREEMPTED: VmState -VM_STATE_REQUESTING: VmState -SCALING_ACTION_UNSPECIFIED: ScalingAction -SCALING_ACTION_SCALE_UP: ScalingAction -SCALING_ACTION_SCALE_DOWN: ScalingAction -SCALING_ACTION_NONE: ScalingAction - -class ResourceSpec(_message.Message): - __slots__ = ("cpu_millicores", "memory_bytes", "disk_bytes", "gpu_count", "tpu_count") - CPU_MILLICORES_FIELD_NUMBER: _ClassVar[int] - MEMORY_BYTES_FIELD_NUMBER: _ClassVar[int] - DISK_BYTES_FIELD_NUMBER: _ClassVar[int] - GPU_COUNT_FIELD_NUMBER: _ClassVar[int] - TPU_COUNT_FIELD_NUMBER: _ClassVar[int] - cpu_millicores: int - memory_bytes: int - disk_bytes: int - gpu_count: int - tpu_count: int - def __init__(self, cpu_millicores: _Optional[int] = ..., memory_bytes: _Optional[int] = ..., disk_bytes: _Optional[int] = ..., gpu_count: _Optional[int] = ..., tpu_count: _Optional[int] = ...) -> None: ... - -class VmInfo(_message.Message): - __slots__ = ("vm_id", "slice_id", "scale_group", "state", "address", "zone", "created_at", "state_changed_at", "worker_id", "worker_healthy", "init_phase", "init_log_tail", "init_error", "running_task_count", "labels") - class LabelsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - VM_ID_FIELD_NUMBER: _ClassVar[int] - SLICE_ID_FIELD_NUMBER: _ClassVar[int] - SCALE_GROUP_FIELD_NUMBER: _ClassVar[int] - STATE_FIELD_NUMBER: _ClassVar[int] - ADDRESS_FIELD_NUMBER: _ClassVar[int] - ZONE_FIELD_NUMBER: _ClassVar[int] - CREATED_AT_FIELD_NUMBER: _ClassVar[int] - STATE_CHANGED_AT_FIELD_NUMBER: _ClassVar[int] - WORKER_ID_FIELD_NUMBER: _ClassVar[int] - WORKER_HEALTHY_FIELD_NUMBER: _ClassVar[int] - INIT_PHASE_FIELD_NUMBER: _ClassVar[int] - INIT_LOG_TAIL_FIELD_NUMBER: _ClassVar[int] - INIT_ERROR_FIELD_NUMBER: _ClassVar[int] - RUNNING_TASK_COUNT_FIELD_NUMBER: _ClassVar[int] - LABELS_FIELD_NUMBER: _ClassVar[int] - vm_id: str - slice_id: str - scale_group: str - state: VmState - address: str - zone: str - created_at: _time_pb2.Timestamp - state_changed_at: _time_pb2.Timestamp - worker_id: str - worker_healthy: bool - init_phase: str - init_log_tail: str - init_error: str - running_task_count: int - labels: _containers.ScalarMap[str, str] - def __init__(self, vm_id: _Optional[str] = ..., slice_id: _Optional[str] = ..., scale_group: _Optional[str] = ..., state: _Optional[_Union[VmState, str]] = ..., address: _Optional[str] = ..., zone: _Optional[str] = ..., created_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., state_changed_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., worker_id: _Optional[str] = ..., worker_healthy: _Optional[bool] = ..., init_phase: _Optional[str] = ..., init_log_tail: _Optional[str] = ..., init_error: _Optional[str] = ..., running_task_count: _Optional[int] = ..., labels: _Optional[_Mapping[str, str]] = ...) -> None: ... - -class SliceInfo(_message.Message): - __slots__ = ("slice_id", "scale_group", "created_at", "vms", "error_message", "last_active", "idle") - SLICE_ID_FIELD_NUMBER: _ClassVar[int] - SCALE_GROUP_FIELD_NUMBER: _ClassVar[int] - CREATED_AT_FIELD_NUMBER: _ClassVar[int] - VMS_FIELD_NUMBER: _ClassVar[int] - ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int] - LAST_ACTIVE_FIELD_NUMBER: _ClassVar[int] - IDLE_FIELD_NUMBER: _ClassVar[int] - slice_id: str - scale_group: str - created_at: _time_pb2.Timestamp - vms: _containers.RepeatedCompositeFieldContainer[VmInfo] - error_message: str - last_active: _time_pb2.Timestamp - idle: bool - def __init__(self, slice_id: _Optional[str] = ..., scale_group: _Optional[str] = ..., created_at: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., vms: _Optional[_Iterable[_Union[VmInfo, _Mapping]]] = ..., error_message: _Optional[str] = ..., last_active: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., idle: _Optional[bool] = ...) -> None: ... - -class ScalingDecision(_message.Message): - __slots__ = ("scale_group", "action", "slice_delta", "reason") - SCALE_GROUP_FIELD_NUMBER: _ClassVar[int] - ACTION_FIELD_NUMBER: _ClassVar[int] - SLICE_DELTA_FIELD_NUMBER: _ClassVar[int] - REASON_FIELD_NUMBER: _ClassVar[int] - scale_group: str - action: ScalingAction - slice_delta: int - reason: str - def __init__(self, scale_group: _Optional[str] = ..., action: _Optional[_Union[ScalingAction, str]] = ..., slice_delta: _Optional[int] = ..., reason: _Optional[str] = ...) -> None: ... - -class ScaleGroupStatus(_message.Message): - __slots__ = ("name", "config", "current_demand", "peak_demand", "backoff_until", "consecutive_failures", "last_scale_up", "last_scale_down", "slices", "slice_state_counts", "availability_status", "availability_reason", "blocked_until", "scale_up_cooldown_until", "idle_threshold_ms") - class SliceStateCountsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: int - def __init__(self, key: _Optional[str] = ..., value: _Optional[int] = ...) -> None: ... - NAME_FIELD_NUMBER: _ClassVar[int] - CONFIG_FIELD_NUMBER: _ClassVar[int] - CURRENT_DEMAND_FIELD_NUMBER: _ClassVar[int] - PEAK_DEMAND_FIELD_NUMBER: _ClassVar[int] - BACKOFF_UNTIL_FIELD_NUMBER: _ClassVar[int] - CONSECUTIVE_FAILURES_FIELD_NUMBER: _ClassVar[int] - LAST_SCALE_UP_FIELD_NUMBER: _ClassVar[int] - LAST_SCALE_DOWN_FIELD_NUMBER: _ClassVar[int] - SLICES_FIELD_NUMBER: _ClassVar[int] - SLICE_STATE_COUNTS_FIELD_NUMBER: _ClassVar[int] - AVAILABILITY_STATUS_FIELD_NUMBER: _ClassVar[int] - AVAILABILITY_REASON_FIELD_NUMBER: _ClassVar[int] - BLOCKED_UNTIL_FIELD_NUMBER: _ClassVar[int] - SCALE_UP_COOLDOWN_UNTIL_FIELD_NUMBER: _ClassVar[int] - IDLE_THRESHOLD_MS_FIELD_NUMBER: _ClassVar[int] - name: str - config: _config_pb2.ScaleGroupConfig - current_demand: int - peak_demand: int - backoff_until: _time_pb2.Timestamp - consecutive_failures: int - last_scale_up: _time_pb2.Timestamp - last_scale_down: _time_pb2.Timestamp - slices: _containers.RepeatedCompositeFieldContainer[SliceInfo] - slice_state_counts: _containers.ScalarMap[str, int] - availability_status: str - availability_reason: str - blocked_until: _time_pb2.Timestamp - scale_up_cooldown_until: _time_pb2.Timestamp - idle_threshold_ms: int - def __init__(self, name: _Optional[str] = ..., config: _Optional[_Union[_config_pb2.ScaleGroupConfig, _Mapping]] = ..., current_demand: _Optional[int] = ..., peak_demand: _Optional[int] = ..., backoff_until: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., consecutive_failures: _Optional[int] = ..., last_scale_up: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., last_scale_down: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., slices: _Optional[_Iterable[_Union[SliceInfo, _Mapping]]] = ..., slice_state_counts: _Optional[_Mapping[str, int]] = ..., availability_status: _Optional[str] = ..., availability_reason: _Optional[str] = ..., blocked_until: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., scale_up_cooldown_until: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., idle_threshold_ms: _Optional[int] = ...) -> None: ... - -class AutoscalerAction(_message.Message): - __slots__ = ("timestamp", "action_type", "scale_group", "slice_id", "reason", "status") - TIMESTAMP_FIELD_NUMBER: _ClassVar[int] - ACTION_TYPE_FIELD_NUMBER: _ClassVar[int] - SCALE_GROUP_FIELD_NUMBER: _ClassVar[int] - SLICE_ID_FIELD_NUMBER: _ClassVar[int] - REASON_FIELD_NUMBER: _ClassVar[int] - STATUS_FIELD_NUMBER: _ClassVar[int] - timestamp: _time_pb2.Timestamp - action_type: str - scale_group: str - slice_id: str - reason: str - status: str - def __init__(self, timestamp: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., action_type: _Optional[str] = ..., scale_group: _Optional[str] = ..., slice_id: _Optional[str] = ..., reason: _Optional[str] = ..., status: _Optional[str] = ...) -> None: ... - -class DemandEntryStatus(_message.Message): - __slots__ = ("task_ids", "coschedule_group_id", "device_type", "device_variant", "preemptible", "resources") - TASK_IDS_FIELD_NUMBER: _ClassVar[int] - COSCHEDULE_GROUP_ID_FIELD_NUMBER: _ClassVar[int] - DEVICE_TYPE_FIELD_NUMBER: _ClassVar[int] - DEVICE_VARIANT_FIELD_NUMBER: _ClassVar[int] - PREEMPTIBLE_FIELD_NUMBER: _ClassVar[int] - RESOURCES_FIELD_NUMBER: _ClassVar[int] - task_ids: _containers.RepeatedScalarFieldContainer[str] - coschedule_group_id: str - device_type: str - device_variant: str - preemptible: bool - resources: ResourceSpec - def __init__(self, task_ids: _Optional[_Iterable[str]] = ..., coschedule_group_id: _Optional[str] = ..., device_type: _Optional[str] = ..., device_variant: _Optional[str] = ..., preemptible: _Optional[bool] = ..., resources: _Optional[_Union[ResourceSpec, _Mapping]] = ...) -> None: ... - -class UnmetDemand(_message.Message): - __slots__ = ("entry", "reason") - ENTRY_FIELD_NUMBER: _ClassVar[int] - REASON_FIELD_NUMBER: _ClassVar[int] - entry: DemandEntryStatus - reason: str - def __init__(self, entry: _Optional[_Union[DemandEntryStatus, _Mapping]] = ..., reason: _Optional[str] = ...) -> None: ... - -class RoutingDecision(_message.Message): - __slots__ = ("group_to_launch", "group_reasons", "routed_entries", "unmet_entries", "group_statuses") - class GroupToLaunchEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: int - def __init__(self, key: _Optional[str] = ..., value: _Optional[int] = ...) -> None: ... - class GroupReasonsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: str - def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... - class RoutedEntriesEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: DemandEntryStatusList - def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[DemandEntryStatusList, _Mapping]] = ...) -> None: ... - GROUP_TO_LAUNCH_FIELD_NUMBER: _ClassVar[int] - GROUP_REASONS_FIELD_NUMBER: _ClassVar[int] - ROUTED_ENTRIES_FIELD_NUMBER: _ClassVar[int] - UNMET_ENTRIES_FIELD_NUMBER: _ClassVar[int] - GROUP_STATUSES_FIELD_NUMBER: _ClassVar[int] - group_to_launch: _containers.ScalarMap[str, int] - group_reasons: _containers.ScalarMap[str, str] - routed_entries: _containers.MessageMap[str, DemandEntryStatusList] - unmet_entries: _containers.RepeatedCompositeFieldContainer[UnmetDemand] - group_statuses: _containers.RepeatedCompositeFieldContainer[GroupRoutingStatus] - def __init__(self, group_to_launch: _Optional[_Mapping[str, int]] = ..., group_reasons: _Optional[_Mapping[str, str]] = ..., routed_entries: _Optional[_Mapping[str, DemandEntryStatusList]] = ..., unmet_entries: _Optional[_Iterable[_Union[UnmetDemand, _Mapping]]] = ..., group_statuses: _Optional[_Iterable[_Union[GroupRoutingStatus, _Mapping]]] = ...) -> None: ... - -class DemandEntryStatusList(_message.Message): - __slots__ = ("entries",) - ENTRIES_FIELD_NUMBER: _ClassVar[int] - entries: _containers.RepeatedCompositeFieldContainer[DemandEntryStatus] - def __init__(self, entries: _Optional[_Iterable[_Union[DemandEntryStatus, _Mapping]]] = ...) -> None: ... - -class GroupRoutingStatus(_message.Message): - __slots__ = ("group", "priority", "assigned", "launch", "decision", "reason") - GROUP_FIELD_NUMBER: _ClassVar[int] - PRIORITY_FIELD_NUMBER: _ClassVar[int] - ASSIGNED_FIELD_NUMBER: _ClassVar[int] - LAUNCH_FIELD_NUMBER: _ClassVar[int] - DECISION_FIELD_NUMBER: _ClassVar[int] - REASON_FIELD_NUMBER: _ClassVar[int] - group: str - priority: int - assigned: int - launch: int - decision: str - reason: str - def __init__(self, group: _Optional[str] = ..., priority: _Optional[int] = ..., assigned: _Optional[int] = ..., launch: _Optional[int] = ..., decision: _Optional[str] = ..., reason: _Optional[str] = ...) -> None: ... - -class AutoscalerStatus(_message.Message): - __slots__ = ("groups", "current_demand", "last_evaluation", "recent_actions", "last_routing_decision") - class CurrentDemandEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: str - value: int - def __init__(self, key: _Optional[str] = ..., value: _Optional[int] = ...) -> None: ... - GROUPS_FIELD_NUMBER: _ClassVar[int] - CURRENT_DEMAND_FIELD_NUMBER: _ClassVar[int] - LAST_EVALUATION_FIELD_NUMBER: _ClassVar[int] - RECENT_ACTIONS_FIELD_NUMBER: _ClassVar[int] - LAST_ROUTING_DECISION_FIELD_NUMBER: _ClassVar[int] - groups: _containers.RepeatedCompositeFieldContainer[ScaleGroupStatus] - current_demand: _containers.ScalarMap[str, int] - last_evaluation: _time_pb2.Timestamp - recent_actions: _containers.RepeatedCompositeFieldContainer[AutoscalerAction] - last_routing_decision: RoutingDecision - def __init__(self, groups: _Optional[_Iterable[_Union[ScaleGroupStatus, _Mapping]]] = ..., current_demand: _Optional[_Mapping[str, int]] = ..., last_evaluation: _Optional[_Union[_time_pb2.Timestamp, _Mapping]] = ..., recent_actions: _Optional[_Iterable[_Union[AutoscalerAction, _Mapping]]] = ..., last_routing_decision: _Optional[_Union[RoutingDecision, _Mapping]] = ...) -> None: ... diff --git a/lib/iris/tests/e2e/conftest.py b/lib/iris/tests/e2e/conftest.py index 7a3b8251f5..2652589232 100644 --- a/lib/iris/tests/e2e/conftest.py +++ b/lib/iris/tests/e2e/conftest.py @@ -47,27 +47,6 @@ DEFAULT_CONFIG = IRIS_ROOT / "examples" / "test.yaml" -@pytest.fixture(scope="session", autouse=True) -def _build_dashboard(): - """Build the Vue dashboard once per test session so dashboard tests can render. - - Uses fcntl to serialize across pytest-xdist workers so concurrent - ``npm ci`` / ``npm run build`` invocations don't corrupt each other. - """ - import fcntl - import tempfile - - lock_path = Path(tempfile.gettempdir()) / "iris-dashboard-build.lock" - with open(lock_path, "w") as lock_fd: - fcntl.flock(lock_fd, fcntl.LOCK_EX) - try: - from iris.cli.build import _ensure_dashboard_dist - - _ensure_dashboard_dist() - finally: - fcntl.flock(lock_fd, fcntl.LOCK_UN) - - def pytest_addoption(parser): """Cloud mode CLI options for running smoke tests against remote clusters.""" parser.addoption("--iris-config", default=None, help="Path to cluster config YAML for cloud mode") diff --git a/lib/iris/tests/e2e/test_smoke.py b/lib/iris/tests/e2e/test_smoke.py index 4a2d3a9f55..7fbdf09fe8 100644 --- a/lib/iris/tests/e2e/test_smoke.py +++ b/lib/iris/tests/e2e/test_smoke.py @@ -677,6 +677,7 @@ def test_region_constrained_routing(smoke_cluster, capabilities): # ============================================================================ +@pytest.mark.skipif(os.environ.get("CI") == "true", reason="py-spy ptrace can segfault worker threads in CI") def test_profile_running_task(smoke_cluster): """Profile a running task, verify data returned.""" if smoke_cluster.is_cloud: diff --git a/pyproject.toml b/pyproject.toml index 47e0e0fbf1..5b93eed5e6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -129,6 +129,7 @@ project-excludes = [ "examples/**", # Example code doesn't need strict typing "lib/**/crawl/**", # Crawl scripts have library typing issues with smart_open "lib/iris/src/iris/rpc/*_pb2*", # Generated protobuf files + "lib/iris/src/iris/rpc/*_connect.py", # Generated Connect RPC files # Keep key excludes that pyrefly normally adds heuristically. "**/node_modules", "**/__pycache__",