Как настроить вызовы vSphere 6 SOAP для отображения пулов ресурсов или центров обработки данных?

VMware vSphere 6.0 WSDL API

Смотрите документацию по адресу:
http://pubs.vmware.com/vsphere-60/index.jsp#com.vmware.wssdk.pg.doc/PG_Introduction_Inventory.6.4.html

Я пытаюсь получить список центров данных в инвентаризации VMware vCenter, и существует один центр данных.

Я создал SOAP-вызов в PHP следующим образом ($ request is print_r () ed):

stdClass Object(
[_this] => stdClass Object(
[_] => propertyCollector
[type] => PropertyCollector
)
[specSet] => Array(
[propSet] => Array(
[0] => Array(
[type] => ResourcePool
[all] => 1
)
)
[objectSet] => Array(
[obj] => stdClass Object(
[_] => group-d1
[type] => Folder
)
[skip] =>
[selectSet] => Array(
[0] => SoapVar Object(
[enc_type] => 301
[enc_value] => Array(
[name] => FolderTraversalSpec
[type] => Folder
[path] => childEntity
[skip] =>
[0] => SoapVar Object(
[enc_type] => 301
[enc_value] => Array(
[name] => FolderTraversalSpec
)
[enc_name] => selectSet
)
[1] => SoapVar Object(
[enc_type] => 301
[enc_value] => Array(
[name] => DataCenterVMTraversalSpec
)
[enc_name] => selectSet
)
)
[enc_stype] => TraversalSpec
)
[1] => SoapVar Object(
[enc_type] => 301
[enc_value] => Array(
[name] => DataCenterVMTraversalSpec
[type] => Datacenter
[path] => datastoreFolder
[skip] =>
[0] => SoapVar Object(
[enc_type] => 301
[enc_value] => Array(
[name] => FolderTraversalSpec
)
[enc_name] => selectSet
)
)
[enc_stype] => TraversalSpec
)
)
)
)
)

Я полагаю, что [path] => datastoreFolder неверен, и в документации VMware показаны datastoreFolder, hostFolder, networkFolder и vmFolder. Ни в одном из них нет центров обработки данных, и кажется, что любой другой объект прерывает вызов SOAP с ошибкой.

Есть ли способ получить кластеры центров обработки данных, используя мыльный вызов?

1

Решение

У меня была такая же проблема. Затем я внимательно посмотрел на эту страницу:

https://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.Datacenter.html

Цитата:

Каждый центр обработки данных имеет следующий набор выделенных папок. Эти папки пусты до тех пор, пока вы не создадите объекты для центра обработки данных.

Папка для объектов VirtualMachine, шаблона и VirtualApp.
Папка для иерархии ComputeResource.
Папка для объектов Network, DistributedVirtualSwitch и DistributedVirtualPortgroup.
Папка для объектов хранилища данных.

Вы используете ResourcePool в своем propSet, но он не существует для центра обработки данных.

[propSet] => Array(
[0] => Array(
[type] => ResourcePool
[all] => 1
)
)

Это то, что я использую, чтобы прочитать все хосты:

[propSet] => Array
(
[0] => Array
(
[type] => ComputeResource
[all] => 1
)
)

[objectSet] => Array
(
[obj] => stdClass Object
(
[_] => group-d1
[type] => Folder
)

[skip] =>
[selectSet] => Array
(
[0] => SoapVar Object
(
[enc_type] => 301
[enc_value] => Array
(
[name] => FolderTraversalSpec
[type] => Folder
[path] => childEntity
[skip] =>
[0] => SoapVar Object
(
[enc_type] => 301
[enc_value] => Array
(
[name] => FolderTraversalSpec
)

[enc_name] => selectSet
)

[1] => SoapVar Object
(
[enc_type] => 301
[enc_value] => Array
(
[name] => DataCenterVMTraversalSpec
)

[enc_name] => selectSet
)

)

[enc_stype] => TraversalSpec
)

[1] => SoapVar Object
(
[enc_type] => 301
[enc_value] => Array
(
[name] => DataCenterVMTraversalSpec
[type] => Datacenter
[path] => hostFolder
[skip] =>
[0] => SoapVar Object
(
[enc_type] => 301
[enc_value] => Array
(
[name] => FolderTraversalSpec
)

[enc_name] => selectSet
)

)

[enc_stype] => TraversalSpec
)

)

)

)

Не знаю, поможет ли это, просто надеюсь! Удачи.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]