Conversation
Add the OpenVMM CLI wrapper and tool exports, plus the source installer and deployment transformer needed to provision OpenVMM on a host node.
Teach the platform and runbook schema to load typed guest nodes, preserve optional parent capability inheritance, and recognize OpenVMM as a guest orchestrator type.
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds an OpenVMM-based guest orchestrator/provider and supporting tooling, plus schema/runtime updates to allow typed guest-node runbooks and optional capability inheritance.
Changes:
- Added
OpenVmmtool wrapper and OpenVMM guest orchestrator implementation (node/controller, installer, transformer, schemas). - Updated Cargo tool installation flow to set a stable toolchain and resolve toolchain cargo path more robustly.
- Updated core schema/platform logic for typed guest nodes and conditional parent capability inheritance (
use_parent_capability).
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| lisa/tools/openvmm.py | New Tool wrapper to build/launch OpenVMM VMs and query version. |
| lisa/tools/cargo.py | Adjusts rustup/cargo linking and stable toolchain selection. |
| lisa/tools/init.py | Exposes OpenVmm tool in tools package exports. |
| lisa/sut_orchestrator/openvmm/transformers.py | Adds transformer to install/verify OpenVMM on host nodes. |
| lisa/sut_orchestrator/openvmm/start_stop.py | Implements Start/Stop feature hooks for OpenVMM guests. |
| lisa/sut_orchestrator/openvmm/schema.py | Adds OpenVMM runbook schemas (installer + guest node + networking/serial/UEFI). |
| lisa/sut_orchestrator/openvmm/node.py | Implements OpenVMM guest node provisioning, launch, and lifecycle control. |
| lisa/sut_orchestrator/openvmm/installer.py | Adds source-based OpenVMM installer (cargo build + install + symlink). |
| lisa/sut_orchestrator/openvmm/context.py | Adds per-node context for OpenVMM runtime state and artifact paths. |
| lisa/sut_orchestrator/openvmm/init.py | New package init for OpenVMM orchestrator module. |
| lisa/sut_orchestrator/init.py | Registers OPENVMM orchestrator constant. |
| lisa/schema.py | Adds typed guest-node loading and use_parent_capability; changes Platform.guests type. |
| lisa/platform_.py | Applies parent capability to guests conditionally via use_parent_capability. |
| lisa/mixin_modules.py | Imports OpenVMM orchestrator modules for registration/discovery. |
09ea552 to
e937071
Compare
073c4b7 to
ad62bd4
Compare
2be93bc to
b7e89bf
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 14 out of 14 changed files in this pull request and generated 6 comments.
Comments suppressed due to low confidence (1)
lisa/sut_orchestrator/openvmm/schema.py:1
- The
installerfield is marked required in metadata but is typed as Optional with a default of None. This makes the schema contract ambiguous and forces a runtime assert later. Prefer makinginstallernon-Optional with no default (mandatory), or make it truly optional by removingrequired=Trueand handlingNoneexplicitly.
# Copyright (c) Microsoft Corporation.
b7e89bf to
8adfc06
Compare
|
@copilot please resolve below issues : Code scanning This expression stores sensitive data (password) |
|
@copilot apply changes based on the comments in this thread |
Implement the OpenVMM guest node controller, lifecycle feature support, and module registration needed to activate the orchestrator in LISA.
efe359b to
c07b677
Compare
d752fd5 to
39a9d2b
Compare
Replace OpenVMM process sleep loops with bounded wait helpers and clearer timeout failures during start/stop handling. Use typing.Dict in lisa/secret.py so the annotation remains compatible with the repo's Python 3.8 minimum.
39a9d2b to
587e2d0
Compare
d3a22b8 to
3cb2c80
Compare
| priority=1, | ||
| requirement=simple_requirement(supported_features=[StartStop]), | ||
| ) | ||
| def verify_stop_start_in_platform(self, node: Node) -> None: |
There was a problem hiding this comment.
this already is verify_***
There was a problem hiding this comment.
don't use the same names, when only specify the name, two cases will be picked up.
There was a problem hiding this comment.
ok i see. fixed
Fix OpenVMM guest capability isolation, host-path handling, installer path normalization, and stop-timeout cleanup behavior. Add focused selftests for guest-node parsing, OpenVMM node and installer regressions, schema validation, and stdout secret logging, plus minimal OpenVMM smoke coverage.
Description
This PR adds the initial OpenVMM guest support in LISA. It adds the installer, schema, tool wrapper, transformers, guest-node plumbing, and the OpenVMM node/lifecycle implementation required to provision and manage OpenVMM guests
Related Issue
Type of Change
Checklist
Test Validation
Key Test Cases:
Tested verify_cloud_hypervisor_integration tests with internal ADO pipeline.
Impacted LISA Features:
Kernel source installer tansformer
Tested Azure Marketplace Images:
None
Test Results