Пример структуры иерархии центра обработки данных ("DC1") приведен ниже, в DC1 есть две родительские папки "Parent1" и "Parent2". Под ними есть подпапки, содержащие виртуальные машины. Я должен развернуть ovf в правильной подпапке по заданному родительскому пути. Например, мне нужно развернуть его в подпапке 2 папки Parent1, а не в папке Parent2.
Ввод папки: parent1/subfolder1/subfolder2
DC1
|
|----Parent1
| |---subfolder1
| |---subfolder2
|
|----Parent2
| |---subfolder2
Текущий код ищет первое доступное имя папки в списке объектов папок центра обработки данных, не следуя структуре каталогов.
from pyvim.connect import SmartConnect, Disconnect
import ssl
try:
#context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
#context.verify_mode = ssl.CERT_NONE
context = ssl._create_unverified_context()
si = SmartConnect(host=args.host,
user="root",
pwd="****",
port=int("443"),
sslContext=context)
except:
raise Exception("Unable to connect")
datacenter = connect.content.rootFolder.childEntity[0]
vmfolder_list = datacenter.vmFolder.childEntity
for vmfolder in vmfolder_list:
if vmfolder.name == search_folder:
return vmfolder
raise Exception("Unable to find object by the name of %s in list:\n%s" %
(search_folder, map(lambda x: x.name, vmfolder_list)))