VMware Workstation/Fusion support
I took a look at Parallels and VirtualBox helpers, and while the VirtualBox one goes fairly far, the requirements for an executor and the Parallels implementation seem to indicate that only a small number of controlling features are required.
Luckily there is a CLI interface to VMware Fusion and Workstation apps viavmrun
when guest tools are installed, for which the most important flags are:
-T [fusion|ws]
start foo.vmx [nogui]
stop foo.vmx
reset foo.vmx
suspend foo.vmx
pause foo.vmx
unpause foo.vmx
listSnapshots foo.vmx
snapshot foo.vmx barsnap
deleteSnapshot foo.vmx barsnap [andDeleteChildren]
revertToSnapshot foo.vmx barsnap
clone src.vmx dst.vmx full|linked [-snapshot=foo"] [-cloneName="bar"]
getGuestIPAddress foo.vmx [-wait]
checkToolsState foo.vmx
Those seem to cover what's required (from a cursory look at parallels/control.go
). I'm willing to test this and possibly implement stuff but I'd like to know it this holds water first before putting undue time on it.
Note 1: vmrun
is located in /Applications/VMware Fusion.app/Contents/Library
on macOS.
Note 2: if the functionality required is too limited, there are possibly other flags and commands that are interesting such as runProgramInGuest
but I couldn't get it to work on a macOS guest, possibly because of some security feature (host-side it returns with a "failure to auth", and vmware-vmsvc.log
shows "failure to impersonate").