fix: standardize provider interface parameters across all implementations

- Add screen_size parameter to get_vm_path() for all providers (with default 1920x1080)
- Add os_type parameter to start_emulator() for Azure and VirtualBox providers
- Add region parameter to stop_emulator() for VMware, Docker, and VirtualBox providers
- Use *args, **kwargs for better extensibility and parameter consistency
- Add documentation comments explaining ignored parameters for interface consistency
- Prevents TypeError exceptions when AWS-specific parameters are passed to other providers

This ensures all providers can handle the same parameter sets while maintaining
backward compatibility and avoiding interface fragmentation.
This commit is contained in:
yuanmengqi
2025-07-15 21:38:34 +00:00
parent 7912880d16
commit 5e5058c1f2
8 changed files with 27 additions and 9 deletions

View File

@@ -417,7 +417,9 @@ class VMwareVMManager(VMManager):
free_vms.append((vm_path, pid_str))
return free_vms
def get_vm_path(self, os_type, region=None):
def get_vm_path(self, os_type, region=None, screen_size=(1920, 1080), **kwargs):
# Note: screen_size parameter is ignored for VMware provider
# but kept for interface consistency with other providers
with self.lock:
if not VMwareVMManager.checked_and_cleaned:
VMwareVMManager.checked_and_cleaned = True