Made-with: Cursor |
||
|---|---|---|
| docs | ||
| src/fiwicontrol | ||
| tests | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| pyproject.toml | ||
README.md
FiWiControl
Tools and libraries for managing and testing Umber Fi‑Wi networks.
This repository ships one Python distribution (fiwicontrol for pip) whose import root is orchestrator:
orchestrator.commands— run commands on remote rigs via OpenSSH orush, with asyncio streaming, timeouts, repeats (Command), and a small registry (CommandManager). Implementation:src/orchestrator/commands/remote_nodes.py.orchestrator.power— reserved for power switching, monitoring, and discovery (Acroname, Monsoon, …). Must depend oncommandsonly, not the reverse.
Layout
FiWiControl/
├── LICENSE
├── README.md
├── pyproject.toml
├── docs/
│ └── remote-nodes-asyncio-design.md
├── src/
│ └── orchestrator/
│ ├── commands/
│ │ ├── __init__.py
│ │ └── remote_nodes.py
│ └── power/
│ └── __init__.py
└── tests/
Requirements
- Python 3.11+
- For
sshtype="ssh": passwordless SSH toroot@<host>(non-interactivessh; seedocs/remote-nodes-asyncio-design.md).
Install (editable)
cd ~/Code/FiWiControl
python -m pip install -e .
python -m pip install -e ".[dev]" # pytest
Imports:
from orchestrator.commands import ssh_node, Command, CommandManager
Tests
Commands, example pytest output, and unittest entry points for remote_nodes: docs/remote-nodes-asyncio-design.md → section “Running tests” (top of that file).
Layout / import smoke (no network):
cd ~/Code/FiWiControl
pytest -q tests/test_package_layout.py
Remote integration (needs FIWI_REMOTE_IP and key auth):
cd ~/Code/FiWiControl
FIWI_REMOTE_IP=192.168.1.39 pytest -q tests/test_remote_nodes.py
Remote
git remote add origin "https://git.umbernetworks.com/rjmcmahon/FiWiControl.git"
git push -u origin main
Use a Gitea personal access token as the HTTPS password if prompted.