Skip to content

dom-importuj: struktura kolejnego domu z pliku - #85

Merged
mbeczynski merged 2 commits into
mainfrom
feat/dom-importuj-struktura
Oct 23, 2026
Merged

mbeczynski merged 2 commits into
mainfrom
feat/dom-importuj-struktura

Conversation

@mbeczynski

Copy link
Copy Markdown
Contributor

Co

  • kidwatch dom-importuj N --plik dom.yaml [--podglad|--zapisz] dla domu innego niż Dom 1: zapisuje dzieci, urządzenia, strefę i ustawienia silnika.
  • Integracje, sekrety i dozwolone_sieci/dozwolone_hosty domu zostają bez zmian (zapisz_dane_domu_conn(..., integracje=False)); plik z sekcją source/notifiers/tv/unifi/mdm jest odrzucany.
  • Walidacja tymi samymi walidatorami co config.yaml, razem z bieżącym źródłem DNS domu (świeży dom — atrapa źródła tylko do walidacji, do bazy nie trafia). Zapis → odczyt → porównanie w jednej transakcji, różnica albo podgląd = ROLLBACK.
  • Wzór dom.example.yaml (test pilnuje, że przechodzi).
  • kiedy_zadziala: dom ≠ 1 działa bez restartu poda (po Domy: start kolejnych domów obok Domu 1 #84).

Dlaczego

Dom ≠ 1 nie miał jak dostać dzieci i urządzeń: dom-importuj przyjmował tylko Dom 1, a panel ma ekran integracji, nie struktury. Bez tego kolejny dom po #84 wystartowałby — ale nie miałby czego monitorować.

Testy

tests/test_domy_struktura.py (18 przypadków): podgląd bez zmian, zapis, Dom 1 nietknięty, integracja NextDNS i jej sekret przeżywają ponowny import (sekret nie w wyjściu), sieci domu nie są dopisywane, odmowy (sekcje integracji, zły plik, Dom 1 z --plik, dom bez --plik, nieistniejący dom), walidacja z bieżącym źródłem AdGuard, wzór. Kanarki: import kasujący integracje, brak odmowy sekcji integracji, dopisywanie sieci jak w Domu 1 — każdy daje czerwony test. Pełny pytest i ruff zielone na gałęzi połączonej z #84.

Wdrożenie i wycofanie

Baza: #84 — scalać po nim (GitHub przestawi bazę na main). Na produkcji nic nie zmienia, dopóki nikt nie wywoła nowego polecenia. Wycofanie = poprzedni obraz; dane zapisane importem to zwykłe wiersze dzieci/urzadzenia, czytane też przez obraz sprzed zmiany.

🤖 Generated with Claude Code

mbeczynski and others added 2 commits October 23, 2026 10:05
Dom inny niz Dom 1 nie mial jak dostac dzieci i urzadzen: dom-importuj
przyjmowal tylko Dom 1 (config.yaml), a panel ma ekran integracji, nie
struktury. `dom-importuj N --plik dom.yaml` zapisuje dzieci, urzadzenia,
strefe i ustawienia; integracje, sekrety i dozwolone sieci domu zostaja
bez zmian. Walidacja tymi samymi walidatorami co config.yaml (z biezacym
zrodlem DNS domu), zapis -> odczyt -> porownanie w jednej transakcji.
Wzor: dom.example.yaml.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mbeczynski
mbeczynski force-pushed the feat/dom-importuj-struktura branch from 706dfaf to 6139350 Compare October 23, 2026 08:10
@mbeczynski
mbeczynski changed the base branch from feat/domy-start to main October 23, 2026 08:28
@mbeczynski
mbeczynski merged commit 73e813b into main Oct 23, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant