2015-03-05 4 views
1

Я использую VCenter. Попытка автоматизировать создание и удаление vm с помощью vijava api. Удаление Vm работает fine.When я пытаюсь клонировать виртуальную машину я stucked .. Структуры ВМИнвентарный путь для поиска vm location

localhost 
    --Datacenter1 
      | ----CLuster1 
      |  -----vm1 
      |  -----vm2 
      |  -----vm3 
      | 
      | ----Cluster2 
    --DataCenter2 

Здесь я пытаюсь извлечь из этого VM3 иерархии, используя путь в виртуальной машина Vm = (VirtualMachine) si.getSearchIndex(). FindByInventoryPath ("vmpath");

Какова структура пути, которую я должен предоставить, чтобы я мог получить vm из этой структуры. я судил Datacenter1/CLUSTER1/VM3
Но все броски VMNotfound исключение ..

Любая помощь будет оценена ...

+0

Есть ли причина, по которой вы должны использовать свой путь против своего экземпляра uuid? –

+0

Независимо от причины .. Я думаю, что вы должны использовать экземпляр uuidand, используя метод findByUuid, но Ill дать решение в ответах ниже. –

ответ

2

Есть несколько "скрытых" папки в инвентаре Vsphere. В этом случае то, что вам нужно, это путь, как так:

VirtualMachine vm = (VirtualMachine) si.getSearchIndex().findByInventoryPath("Datacenter1/vm/vm3"); 

ут является «скрытой» папка, которая содержит все VirtualMachines в датацентре. Я предлагаю использовать MOB, когда вы застряли в инвентаре вроде этого. https://vcenter/mob

Я также предлагаю двигаться от vijava к yavijava https://github.com/yavijava/yavijava

Ее получили много полезных функций я добавил. Самый большой из них регистрируется.