2013-02-09 4 views
3

Update Питона: проблемы все еще здесь, даже если я пытаюсь создать Shared виртуальных машин и изменить расположение этой виртуальной машины.Как получить виртуальную машину VMWare Workstation с помощью PySphere

Я застрял, пытаясь добраться до виртуальной машины, расположенной в 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. Не могли бы вы дать мне подсказку, если мне действительно нужно это сделать?

Спасибо!

ответ

3

я, наконец, понял это! Вы должны убедиться, что виртуальные машины являются общими. VM-> Manage-> Share ...

Затем они появятся под server.get_registered_vms(), и вы сможете использовать get_vm_by_name.

+0

Спасибо, Александр. Работает как шарм. – gahcep

0

Согласно документам, я не думаю, что вы должны поставлять путь необработанного файла к виртуальной машине. Я думаю, что есть внутреннее значение пути:

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

  1. get_vm_by_path: получить виртуальную машину своей виртуальной машине путь к файлу конфигурации. Чтобы получить это значение с помощью клиента VMWare VI:
    1. правой кнопкой мыши на значок виртуальной машины из дерева ресурсов и выберите «Изменить параметры ...»
    2. Перейдите на вкладку «Параметры».
    3. значение на поле "Virtual Machine Configuration File"

Их пример кода показывает, что это:

vm1 = server.get_vm_by_path("[DataStore1] Ubuntu/Ubuntu-10.vmx") 
+0

Привет и спасибо за asnwer, но что такое VMWare VI Client? Извините, что не упоминал об этом, но у меня установлена ​​только рабочая станция VmWare. И я знаю, что с помощью приложения Server эта проблема может быть легко решена. Но что такое Workstation? – gahcep

+0

Я думаю это: https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2089791 жаль, что не коснулся его через некоторое время – amohr

Смежные вопросы