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!")