Source code for heimdall.create_client

from pathlib import Path

from libvmi import Libvmi

from heimdall.core.isf_file import ISFFile, OSType
from heimdall.heimdall_client import HeimdallClient
from heimdall.os_related.linux.linux_client import LinuxClient
from heimdall.os_related.macos.macos_client import MacOSClient
from heimdall.os_related.windows.windows_client import WindowsClient


[docs] def create_heimdall_client(vmi: Libvmi, profile: Path) -> HeimdallClient: """ Factory function to create a HeimdallClient for managing virtual machines. """ isf_file = ISFFile(profile) clients = {OSType.MACOS: MacOSClient, OSType.LINUX: LinuxClient, OSType.WINDOWS: WindowsClient} return clients.get(isf_file.get_os_type(), HeimdallClient)(vmi, profile)