Skip to content

Commit

Permalink
Add support for QEMU/libvirt platform. (#1677)
Browse files Browse the repository at this point in the history
* Add support for QEMU/libvirt platform.

Add basic support for running LISA framework on Linux platform
using QEMU via the libvirt API. This includes succesfully running
the Microsoft T0 tests against the CBL-Mariner image.
  • Loading branch information
cwize1 committed Jan 19, 2022
1 parent 6d10218 commit fc5638b
Show file tree
Hide file tree
Showing 11 changed files with 603 additions and 5 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/continuous-integration-workflow.yml
Expand Up @@ -38,7 +38,8 @@ jobs:
- name: Install Python dependencies (Linux-only)
if: runner.os == 'Linux'
run: |
sudo apt install libgirepository1.0-dev libcairo2-dev
sudo apt update
sudo apt install libgirepository1.0-dev libcairo2-dev qemu-utils libvirt-dev
- name: Install Python dependencies
run: make setup
Expand Down
8 changes: 8 additions & 0 deletions lisa/mixin_modules.py
Expand Up @@ -4,6 +4,8 @@
# The file imports all the mix-in types that can be initialized
# using reflection.

import platform

import lisa.combinators.batch_combinator # noqa: F401
import lisa.combinators.csv_combinator # noqa: F401
import lisa.combinators.grid_combinator # noqa: F401
Expand All @@ -16,6 +18,12 @@
import lisa.sut_orchestrator.azure.hooks # noqa: F401
import lisa.sut_orchestrator.azure.transformers # noqa: F401
import lisa.sut_orchestrator.ready # noqa: F401

if platform.system() == "Linux":
import lisa.sut_orchestrator.qemu.context # noqa: F401
import lisa.sut_orchestrator.qemu.platform # noqa: F401
import lisa.sut_orchestrator.qemu.schema # noqa: F401

import lisa.transformers.kernel_source_installer # noqa: F401
import lisa.transformers.script_transformer # noqa: F401
import lisa.transformers.to_list # noqa: F401
1 change: 1 addition & 0 deletions lisa/sut_orchestrator/__init__.py
Expand Up @@ -3,4 +3,5 @@
from lisa.util.constants import PLATFORM_READY

AZURE = "azure"
QEMU = "qemu"
READY = PLATFORM_READY
27 changes: 27 additions & 0 deletions lisa/sut_orchestrator/qemu/context.py
@@ -0,0 +1,27 @@
from dataclasses import dataclass
from typing import Any, Dict, Optional

from lisa.environment import Environment
from lisa.node import Node


@dataclass
class EnvironmentContext:
ssh_public_key: str = ""


@dataclass
class NodeContext:
vm_name: str = ""
cloud_init_file_path: str = ""
os_disk_base_file_path: str = ""
os_disk_file_path: str = ""
extra_cloud_init_user_data: Optional[Dict[str, Any]] = None


def get_environment_context(environment: Environment) -> EnvironmentContext:
return environment.get_context(EnvironmentContext)


def get_node_context(node: Node) -> NodeContext:
return node.get_context(NodeContext)

0 comments on commit fc5638b

Please sign in to comment.