使用 Python VirtualBox API 远程启动虚拟机
Launch a virtual machine remotely with Python VirtualBox API
我是 VirtualBox API 的新手,我正在尝试通过 VBoxWebSrv.exe 远程启动虚拟机,这是 运行 本地(用于测试)。
到目前为止我已经这样做了:
from vboxapi import *
params = {'url' : 'http://localhost:18083',
'user' : 'user',
'password' : 'password'
}
webmgr = VirtualBoxManager('WEBSERVICE', params)
vbox = webmgr.getVirtualBox()
machines = vbox.getMachines()
for mach in machines:
session = webmgr.getSessionObject(vbox)
progress = mach.launchVMProcess(session, "gui", "")
但是当涉及到 launchVMProcess 方法时它崩溃了。我收到此错误:
Traceback (most recent call last):
File "C:\Users\user\git\VirtualBox-Manager\VirtualBox_Manager\src\test.py", line 45, in <module>
progress = mach.launchVMProcess(session, "", "")
File "C:\Program Files\Oracle\VirtualBox\sdk\bindings\webservice\python\lib\VirtualBox_wrappers.py", line 1801, in __getattr__
return IUnknown.__getattr__(self, name)
File "C:\Program Files\Oracle\VirtualBox\sdk\bindings\webservice\python\lib\VirtualBox_wrappers.py", line 388, in __getattr__
raise AttributeError
AttributeError
奇怪的是,当我使用 COM(=没有 VBoxServer.exe)时,它工作得很好。似乎该方法未针对 webservice 实现或缺少对该方法的引用或我不知道。
我使用最新的 SDK (5.0.14) 和 VirtualBox 5.0.14,主机是 Windows 8.1 64 位。
有什么办法可以解决吗?
非常感谢你的任何想法,我真的被困在这里了。
果然是SDK 5.0.14的webservice有问题,无法正常使用。此问题已在今天发布的 SDK 5.0.16 中修复。
我是 VirtualBox API 的新手,我正在尝试通过 VBoxWebSrv.exe 远程启动虚拟机,这是 运行 本地(用于测试)。 到目前为止我已经这样做了:
from vboxapi import *
params = {'url' : 'http://localhost:18083',
'user' : 'user',
'password' : 'password'
}
webmgr = VirtualBoxManager('WEBSERVICE', params)
vbox = webmgr.getVirtualBox()
machines = vbox.getMachines()
for mach in machines:
session = webmgr.getSessionObject(vbox)
progress = mach.launchVMProcess(session, "gui", "")
但是当涉及到 launchVMProcess 方法时它崩溃了。我收到此错误:
Traceback (most recent call last):
File "C:\Users\user\git\VirtualBox-Manager\VirtualBox_Manager\src\test.py", line 45, in <module>
progress = mach.launchVMProcess(session, "", "")
File "C:\Program Files\Oracle\VirtualBox\sdk\bindings\webservice\python\lib\VirtualBox_wrappers.py", line 1801, in __getattr__
return IUnknown.__getattr__(self, name)
File "C:\Program Files\Oracle\VirtualBox\sdk\bindings\webservice\python\lib\VirtualBox_wrappers.py", line 388, in __getattr__
raise AttributeError
AttributeError
奇怪的是,当我使用 COM(=没有 VBoxServer.exe)时,它工作得很好。似乎该方法未针对 webservice 实现或缺少对该方法的引用或我不知道。
我使用最新的 SDK (5.0.14) 和 VirtualBox 5.0.14,主机是 Windows 8.1 64 位。 有什么办法可以解决吗?
非常感谢你的任何想法,我真的被困在这里了。
果然是SDK 5.0.14的webservice有问题,无法正常使用。此问题已在今天发布的 SDK 5.0.16 中修复。