4

更新:即使我尝试创建共享虚拟机并更改该虚拟机的位置,问题仍然存在。

我试图D:\VMs\CentOS-Backup\CentOS-Secondary-Server.vmx使用PySphere 访问位于的虚拟机时遇到了困难。

请你帮助我好吗?

到目前为止,我所做的只是:

from pysphere import VIServer

server = VIServer()
server.connect("127.0.0.1", "my_system_login", "my_system_password")

# prints 'VMware Workstation'
print server.get_server_type()

# prints '5.1'
print server.get_api_version()

# Exception
vm = server.get_vm_by_path(r"D:\VMs\CentOS-Backup\CentOS-Secondary-Server.vmx")

vm.power_on()

提到的例外是:

Traceback (most recent call last):
  File "C:\Program Files (x86)\JetBrains\PyCharm 2.7\helpers\pydev\pydevd.py", line 1473, in <module> 
    debugger.run(setup['file'], None, None)
  File "C:\Program Files (x86)\JetBrains\PyCharm 2.7\helpers\pydev\pydevd.py", line 1117, in run
    pydev_imports.execfile(file, globals, locals) #execute the script
  File "D:/Projects/PyUnitTesting/pyunittest/launcher.py", line 13, in <module>
    vm = server.get_vm_by_path(r"D:\VMs\CentOS-Backup\CentOS-Secondary-Server.vmx")
  File "C:\dev\Python27\lib\site-packages\pysphere\vi_server.py", line 291, in get_vm_by_path
    FaultTypes.OBJECT_NOT_FOUND)
pysphere.resources.vi_exception.VIException: [Object Not Found]: Could not find a VM with path 'D:\VMs\CentOS-Backup\CentOS-Secondary-Server.vmx'

请注意,我也安装了VIX API。但没有执行任何与系统 PATH 添加相关的特定操作。如果我真的需要这样做,你能给我一个提示吗?

谢谢!

4

2 回答 2

3

我终于想通了!您需要确保虚拟机是共享的。虚拟机->管理->共享...

然后它们将显示在 server.get_registered_vms() 下,然后您可以使用 get_vm_by_name。

于 2013-07-19T23:41:33.190 回答
1

根据文档,我认为您不应该向 VM 提供原始文件路径。我认为有一个内部路径值:

http://code.google.com/p/pysphere/wiki/GettingStarted#Getting_VM_properties

  1. get_vm_by_path:通过虚拟机配置文件路径检索虚拟机。要通过 VMWare VI Client 获取此值:
    1. 右键单击资源树中的 vm 图标,然后选择“编辑设置...”
    2. 转到“选项”选项卡。
    3. 该值位于“虚拟机配置文件”字段中

他们的示例代码显示了这一点:

vm1 = server.get_vm_by_path("[DataStore1] Ubuntu/Ubuntu-10.vmx")
于 2013-03-18T19:05:33.933 回答