gpt4 book ai didi

python - 使用 pyvbox 在 vi​​rtualbox 中恢复快照

转载 作者:行者123 更新时间:2023-12-01 01:20:56 29 4
gpt4 key购买 nike

我想编写一段代码,使用pyvbox恢复特定虚拟机上的特定快照。 。

我有这个:

def readSnap(mach_name):
vbox = virtualbox.VirtualBox()
vm = vbox.find_machine(mach_name)
snap = vm.restore_snapshot()

但是最后一行抛出:

virtualbox.library_base.VBoxError: 0x80020009 
(Method Machine::restoreSnapshot is not implemented)

我对使用这个模块很困惑。我知道 restore_snapshot() 接受的参数必须是 ISnapshot 的实例,但我也不知道如何使用它。

感谢您的帮助和时间。

最佳答案

我找到了解决方案。问题是我没有在代码中包含这一行:

snap = vm.find_snapshot(s_name)

恢复快照后,您需要使用以下命令解锁 session :

session.unlock_machine()

这是我的最终代码:

def read_snapshot(m_name, s_name):
start = time.time()
name = "read_snapshot"
vb = virtualbox.VirtualBox()
session = virtualbox.Session()

try:
vm = vb.find_machine(m_name)
snap = vm.find_snapshot(s_name)
vm.create_session(session=session)
except virtualbox.library.VBoxError as e:
return Report(name, "failed", e.msg, True)
except Exception as e:
return Report(name, "failed", str(e), True)

restoring = session.machine.restore_snapshot(snap)

while restoring.operation_percent < 100:
time.sleep(0.5)

session.unlock_machine()
if restoring.completed == 1:
return Report(name, "success", "restoring completed in {:>.4} sec".format(str(time.time() - start)), False)
else:
return Report(name, "failed", "restoring not completed", True)

关于python - 使用 pyvbox 在 vi​​rtualbox 中恢复快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53852900/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com