* Initailize aws support * Add README for the VM server * Refactor OSWorld for supporting more cloud services. * Initialize vmware and aws implementation v1, waiting for verification * Initlize files for azure, gcp and virtualbox support * Debug on the VMware provider * Fix on aws interface mapping * Fix instance type * Refactor * Clean * Add Azure provider * hk region; debug * Fix lock * Remove print * Remove key_name requirements when allocating aws vm * Clean README * Fix reset * Fix bugs * Add VirtualBox and Azure providers * Add VirtualBox OVF link * Raise exception on macOS host * Init RAEDME for VBox * Update VirtualBox VM download link * Update requirements and setup.py; Improve robustness on Windows * Fix network adapter * Go through on Windows machine * Add default adapter option * Fix minor error --------- Co-authored-by: Timothyxxx <384084775@qq.com> Co-authored-by: XinyuanWangCS <xywang626@gmail.com> Co-authored-by: Tianbao Xie <47296835+Timothyxxx@users.noreply.github.com>
26 lines
1.3 KiB
Python
26 lines
1.3 KiB
Python
from desktop_env.providers.base import VMManager, Provider
|
|
from desktop_env.providers.vmware.manager import VMwareVMManager
|
|
from desktop_env.providers.vmware.provider import VMwareProvider
|
|
from desktop_env.providers.aws.manager import AWSVMManager
|
|
from desktop_env.providers.aws.provider import AWSProvider
|
|
from desktop_env.providers.azure.manager import AzureVMManager
|
|
from desktop_env.providers.azure.provider import AzureProvider
|
|
from desktop_env.providers.virtualbox.manager import VirtualBoxVMManager
|
|
from desktop_env.providers.virtualbox.provider import VirtualBoxProvider
|
|
|
|
def create_vm_manager_and_provider(provider_name: str, region: str):
|
|
"""
|
|
Factory function to get the Virtual Machine Manager and Provider instances based on the provided provider name.
|
|
"""
|
|
provider_name = provider_name.lower().strip()
|
|
if provider_name == "vmware":
|
|
return VMwareVMManager(), VMwareProvider(region)
|
|
elif provider_name == "virtualbox":
|
|
return VirtualBoxVMManager(), VirtualBoxProvider(region)
|
|
elif provider_name in ["aws", "amazon web services"]:
|
|
return AWSVMManager(), AWSProvider(region)
|
|
elif provider_name == "azure":
|
|
return AzureVMManager(), AzureProvider(region)
|
|
else:
|
|
raise NotImplementedError(f"{provider_name} not implemented!")
|