Publish curated ITWorx-ModelForge source from 990401737f96c8d46a9f7b0d84994516cadcb6a0
This commit is contained in:
1 parent
7082ab955a
commit
848f0d8f8a
434 files changed
+67298
-4315
No files matched your search
@@ -5,6 +5,7 @@ import pytest
|
||||
from fastapi import HTTPException
|
||||
from fastapi.testclient import TestClient
|
||||
from hardware_fakes import FakeAcceleratorCollector, FakeHostCollector
|
||||
from http_contract_fakes import isolated_http_contract # noqa: F401 - opt-in pytest fixture
|
||||
from pydantic import SecretStr
|
||||
from sqlalchemy import create_engine, text
|
||||
from sqlalchemy.orm import Session
|
||||
@@ -18,6 +19,8 @@ from modelforge_api.services.hardware_inventory import HardwareInventoryService
|
||||
from modelforge_api.services.node_agent import NodeAgentService
|
||||
from modelforge_api.settings import Settings, get_settings
|
||||
|
||||
pytestmark = pytest.mark.usefixtures("isolated_http_contract")
|
||||
|
||||
|
||||
def enrollment_payload(token: str, identity: str = "remote-a") -> dict:
|
||||
return {
|
||||
@@ -71,6 +74,16 @@ def test_agent_api_enrollment_secret_is_once_only_and_node_scoped() -> None:
|
||||
assert enrolled.status_code == 201
|
||||
assert enrolled.headers["cache-control"] == "no-store"
|
||||
credential = enrolled.json()["node_credential"]
|
||||
enrollments_after_use = client.get(
|
||||
"/api/v1/admin/node-enrollments",
|
||||
headers={"X-ModelForge-Admin-Token": "admin-key"},
|
||||
)
|
||||
assert enrollments_after_use.status_code == 200
|
||||
used_summary = next(
|
||||
item for item in enrollments_after_use.json() if item["id"] == created.json()["id"]
|
||||
)
|
||||
assert used_summary["enrolled_node_id"] == enrolled.json()["node_id"]
|
||||
assert "enrollment_token" not in used_summary
|
||||
assert (
|
||||
client.post("/api/v1/agent/enroll", json=enrollment_payload(token)).status_code
|
||||
== 401
|
||||
@@ -189,6 +202,8 @@ def test_agent_openapi_contract_contains_versioned_surfaces_without_list_secret(
|
||||
"/api/v1/agent/telemetry",
|
||||
"/api/v1/admin/node-enrollments",
|
||||
"/api/v1/admin/hardware/nodes/{node_id}/credential/rotate",
|
||||
"/api/v1/admin/hardware/nodes/{node_id}/lifecycle/preview",
|
||||
"/api/v1/admin/hardware/nodes/{node_id}/lifecycle",
|
||||
"/api/v1/admin/hardware/nodes/{node_id}/decommission/preview",
|
||||
"/api/v1/admin/hardware/nodes/{node_id}/decommission",
|
||||
"/api/v1/agent/runtime-probes/next",
|
||||
@@ -199,3 +214,4 @@ def test_agent_openapi_contract_contains_versioned_surfaces_without_list_secret(
|
||||
assert path in schema["paths"]
|
||||
summary = schema["components"]["schemas"]["EnrollmentTokenSummary"]
|
||||
assert "enrollment_token" not in summary["properties"]
|
||||
assert "enrolled_node_id" in summary["properties"]
|
||||
Reference in new issue
Block a user