You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+10-8Lines changed: 10 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,16 +10,18 @@ In addition, MTUI provides convenience commands to help with maintenance update
10
10
11
11
## Features
12
12
13
-
- Parallel SSH command execution across SUSE reference hosts (`run`, `prepare`, `update`, `install`, `downgrade`, …) with per-host `enabled` / `disabled` / `dryrun` states and `parallel` / `serial` execution modes.
14
-
- OBS / IBS maintenance-request workflow: `assign`, `unassign`, `approve`, `reject`, `comment`, each dispatched to either `osc` or Gitea depending on the request kind. `approve -r REVIEWER` records the reviewer in the testreport and commits to SVN in one step.
15
-
- openQA integration: `reload_openqa`, `set_workflow {auto,manual,kernel}`, and `openqa_overview` (port of `oqa-search`) which prints PASSED/FAILED/RUNNING per SLE version, aggregated-update builds, and parsed build-check summaries, with `--export` to inject the block into the testreport's `regression tests:` section.
16
-
- Reference-host lock management: cooperative `/var/lock/mtui.lock` files, automatic locking of every connected host while a Product Increment is under test (`[lock] pi_autolock`), and automatic reaping of stale locks left over from crashed sessions (`[lock] reap_stale`, `[lock] stale_age`).
13
+
- Parallel SSH command execution across SUSE reference hosts (`run`, `prepare`, `update`, `install`, `uninstall`, `downgrade`, `reboot`, …) with per-host `enabled` / `disabled` / `dryrun` states and `parallel` / `serial` execution modes.
14
+
- OBS / IBS maintenance-request workflow: `assign`, `unassign`, `approve`, `reject`, `comment`, dispatched to the native OBS/IBS API for `SUSE:Maintenance` and Product Increment requests (no `osc` subprocess; credentials and the SSH signing key are read from `~/.oscrc`) or to Gitea for SLFO / SL-Micro requests. `approve -r REVIEWER` records the reviewer in the testreport and commits to SVN in one step.
15
+
- Update-queue and template workflow: `updates` lists the actionable pickup queue (unassigned updates in testing) from the TeReGen API sorted by priority, `checkers` shows the build-check result runs for the loaded update, and `regenerate` rebuilds a loaded update's test-report template via TeReGen and reloads it in place.
16
+
- Multiple templates in one session: `load_template` adds each RRID to the session, `list_templates` / `switch` / `unload` manage the loaded set, and action commands fan out across every loaded template by default (scope a single one with `-T RRID` or force fan-out with `--all-templates`). Fan-out arbitrates a distinct free reference host per test-target slot from the shared pool so templates never collide on a host.
17
+
- openQA integration: `reload_openqa`, `set_workflow {auto,manual,kernel}`, `openqa_overview` (port of `oqa-search`) which prints PASSED/FAILED/RUNNING per SLE version, aggregated-update builds, and parsed build-check summaries (with `--export` to inject the block into the testreport's `regression tests:` section), and `openqa_jobs` which lists the individual openQA jobs for the incident build so you can see which scenarios passed or failed.
18
+
- Reference-host lock management: cooperative lock files, automatic locking of every connected host while a Product Increment is under test (`[lock] pi_autolock`), automatic reaping of stale locks left over from crashed sessions (`[lock] reap_stale`, `[lock] stale_age`), and independent host-pool claims (`list_locks -p`, `unlock -p`) that queue politely on an exhausted pool (`[lock] wait`, `[lock] wait_poll`).
17
19
- Test-report lifecycle: `load_template`, `checkout`, `commit`, `edit`, `export`, with SVN and Gitea checkout backends.
18
-
- Reference-host discovery: HTTPS- or filesystem-resolved `refhosts.yml` with location-aware fallback and configurable cache expiry, plus offline inventory search (`list_refhosts`) that filters the fleet by hostname glob, arch, product, version, addon, or testplatform query (and optionally probes live lock state) without connecting, locking, or loading a template.
19
-
- File transfer: `put` (glob upload to all hosts) and `get` (download with per-host filename suffix or recursive folder mode).
20
-
- Interactive `prompt_toolkit`-based shell: tab completion over the live command registry, persistent history with reverse-search (Ctrl-R), autosuggest-from-history (right-arrow to accept), lexer-highlighted command tokens, a bottom toolbar showing the loaded RRID, per-command `--help`, configurable log level, optional desktop notifications (`notify` extra), and OS-keyring credential storage (`keyring` extra).
20
+
- Reference-host discovery: HTTPS- or filesystem-resolved `refhosts.yml` with a single merged host pool and configurable cache expiry, plus offline inventory search (`list_refhosts`) that filters the fleet by hostname glob, arch, product, version, addon, or testplatform query (and optionally probes live lock state) without connecting, locking, or loading a template.
21
+
- File transfer: `put` (glob upload to all hosts, preserving directory trees) and `get` (download with per-host filename suffix or recursive folder mode).
22
+
- Interactive `prompt_toolkit`-based shell: tab completion over the live command registry, persistent history with reverse-search (Ctrl-R), autosuggest-from-history (right-arrow to accept), lexer-highlighted command tokens, a bottom toolbar showing the loaded-template count and the active RRID, per-command `--help`, configurable log level, optional desktop notifications (`notify` extra), and OS-keyring credential storage (`keyring` extra).
21
23
- Shell-completion script via the `completion` extra (`register-python-argcomplete mtui`).
22
-
- MCP server (`mtui-mcp`, optional `mcp` extra): exposes every non-interactive mtui command as a [Model Context Protocol](https://modelcontextprotocol.io) tool, plus dedicated `testreport_read` / `testreport_patch` / `testreport_write` tools, so LLM clients can drive a headless mtui session over `stdio` or `http`.
24
+
- MCP server (`mtui-mcp`, optional `mcp` extra): exposes every non-interactive mtui command as a [Model Context Protocol](https://modelcontextprotocol.io) tool, plus dedicated `testreport_read` / `testreport_patch` / `testreport_write` tools, so LLM clients can drive a headless mtui session over `stdio` or `http`. The HTTP transport isolates state per client, slow host commands can run as backgrounded jobs (`job_list` / `job_status` / `job_result` / `job_cancel`), and the exposed tool surface is tunable through the `[mcp]` config section.
0 commit comments