2443909362
---ci--- project: nova-platform milestone: v1.0 status: complete requirements: covered: [REQ-01,REQ-02,REQ-03,REQ-04,REQ-05,REQ-06,REQ-07,REQ-08,REQ-09,REQ-10,REQ-11,REQ-12,REQ-13,REQ-14,REQ-15,REQ-16,REQ-17,REQ-18,REQ-19,REQ-20,REQ-21,REQ-22,REQ-23,REQ-24,REQ-25,REQ-26,REQ-27,REQ-28,REQ-29,REQ-30,REQ-31,REQ-32,REQ-33,REQ-34,REQ-35,REQ-36,REQ-37,REQ-38] partial: [] ---/ci--- v1.0 milestone complete: simplified infrastructure-delivery platform derived from Nova (acdl). 6 phases (P0-P5 + P6 final). 38 REQ-IDs. 38 decisions (D-001..D-038). 76 tests pass. Engine boundary holds. Happy paths green (check-only + CI). 13 L1 + 2 L2 modules. 5 terraform roots. Shell reproducibility. Zero OOS files. Tags: v0.1.0 (P0) → v0.1.1..v0.1.5 (P1..P5) → v0.1.6 (P6 = milestone release on v0.1 patch line).
37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
"""Nova Platform — Environment Check.
|
|
|
|
Loads and validates a platform-managed environment JSON file.
|
|
|
|
Simplified per D-019: check(env_name, environments_dir) -> dict, raises
|
|
EnvironmentNotFoundError on missing env. Drops the reference's
|
|
(ok, message) tuple, _onboarding_message, and main() CLI.
|
|
"""
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
|
|
class EnvironmentNotFoundError(FileNotFoundError):
|
|
"""Raised when a named environment has no JSON file."""
|
|
|
|
|
|
def check(env_name, environments_dir):
|
|
"""Load and return the environment dict for env_name.
|
|
|
|
Args:
|
|
env_name: environment name (dev, qa, prod, dr).
|
|
environments_dir: Path to the core/environments/ directory.
|
|
|
|
Returns:
|
|
The parsed environment dict.
|
|
|
|
Raises:
|
|
EnvironmentNotFoundError: no <env_name>.json in environments_dir.
|
|
"""
|
|
env_path = Path(environments_dir) / f"{env_name}.json"
|
|
if not env_path.exists():
|
|
raise EnvironmentNotFoundError(
|
|
f"environment '{env_name}' not found at {env_path}")
|
|
with open(env_path) as fh:
|
|
env = json.load(fh)
|
|
return env |