Skip to content

Inspect: support maintenance bookings and recurring schedules - #133

Open
JonasScholl wants to merge 1 commit into
feature/blueprintsfrom
feature/maintenance
Open

JonasScholl wants to merge 1 commit into
feature/blueprintsfrom
feature/maintenance

Conversation

@JonasScholl

@JonasScholl JonasScholl commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Changes

app.inspect now supports the full maintenance booking lifecycle: reading and filtering, impact previews, creation, complete updates, locking/unlocking, starting immediately, and deletion. Write operations run through explicit methods, independently of topology transactions.

  • Typed specifications, resource targets, schedules, results, and impact reports, with relationships to devices, modules, ports, and edges.
  • Maintenance data loads lazily as a snapshot section and reuses data from full snapshots. Successful writes invalidate affected caches without discarding staged topology edits.
  • Updates fetch the current revision, preserve the lock state unless explicitly changed, and optionally check expected_rev. Errors include operation and server details; writes are not automatically retried after uncertain transport failures.
  • Exact connector allow-list entries for the three maintenance actions, plus detailed anonymized documentation and commented examples.

Recurring schedules

Daily, weekly, and monthly rules expand into dated one-time bookings created in a single request. Each booking has its own server-returned ID and is managed independently. Impact previews evaluate each window separately.

This implementation accounts for behavior observed on VideoIPath 2026.2.0: native recurrence requests produced a broad booking window that could not subsequently be updated. SDK expansion handles IANA timezones and daylight saving time rules, with a limit of 1,000 complete windows per request. Nonempty server-specific iteration filters are explicitly rejected during expansion; transport models preserve these fields. Older server versions have not been verified.

Validation

  • poetry run test-unit: 628 tests passed.
  • poetry run test-e2e tests/e2e/apps/test_inspect_maintenance.py: 8 live cases passed on 2026.2.0. Coverage includes exact windows, persisted metadata, revision conflicts, lock preservation, start-now, searching and filtering, independent recurring occurrences, module/port/edge targets, open-ended windows, and staged topology edits.
  • Live tests use only test-owned mock resources with E2E- labels and the vipat-e2e tag. Cleanup verifies booking removal first, then device removal from Inspect and Inventory; no global sweep is performed.
  • New Python files pass Ruff; formatting and Python/JSON examples were checked. The full repository Ruff run still reports existing findings, with no new diagnostics compared with the baseline.
  • No credentials or unmodified live captures are included.

Live impact checks use isolated mock resources without services. Populated impact responses are also tested offline.

@JonasScholl JonasScholl changed the title Inspect: Wartungsbuchungen mit wiederkehrenden Zeitfenstern unterstützen Inspect: support maintenance bookings and recurring schedules Oct 8, 2026
@JonasScholl
JonasScholl added this pull request to stack #134 October 8, 2026 20:20
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