Как получить использование памяти хост-машины из Vmware ESXi 5.5 для отображения через PHP на веб-сайте?

Я ищу везде, как добиться, чтобы использование памяти хост-машины из Vmware ESXi 5.5 отображалось через PHP на веб-сайте, но я не могу найти ответ.

Я нашел следующий код на GitHub:

<?php
class soapclientd extends soapclient
{
public $action = false;

public function __construct($wsdl, $options = array())
{
parent::__construct($wsdl, $options);
}

public function __doRequest($request, $location, $action, $version, $one_way = 0)
{
//        echo '<pre>' . htmlspecialchars(str_replace(array ('<ns', '></'), array (PHP_EOL . '<ns', '>'.PHP_EOL.'</'), $request)) . '</pre>';
$resp = parent::__doRequest($request, $location, $action, $version, $one_way);
return $resp;
}

}

$client = new soapclientd('vimService.wsdl', array ('location' => 'http://10.1.0.47/sdk', 'trace' => 1));

try
{
$request = new stdClass();
$request->_this = array ('_' => 'ServiceInstance', 'type' => 'ServiceInstance');
$response = $client->__soapCall('RetrieveServiceContent', array((array)$request));
} catch (Exception $e)
{
echo $e->getMessage();
exit;
}
$ret = $response->returnval;

try
{
$request = new stdClass();
$request->_this = $ret->sessionManager;
$request->userName = 'root';
$request->password = 'abc123456';
$response = $client->__soapCall('Login', array((array)$request));
} catch (Exception $e)
{
echo $e->getMessage();
exit;
}

$ss1 = new soapvar(array ('name' => 'FolderTraversalSpec'), SOAP_ENC_OBJECT, null, null, 'selectSet', null);
$ss2 = new soapvar(array ('name' => 'DataCenterVMTraversalSpec'), SOAP_ENC_OBJECT, null, null, 'selectSet', null);
$a = array ('name' => 'FolderTraversalSpec', 'type' => 'Folder', 'path' => 'childEntity', 'skip' => false, $ss1, $ss2);

$ss = new soapvar(array ('name' => 'FolderTraversalSpec'), SOAP_ENC_OBJECT, null, null, 'selectSet', null);
$b = array ('name' => 'DataCenterVMTraversalSpec', 'type' => 'Datacenter', 'path' => 'vmFolder', 'skip' => false, $ss);

$res = null;
try
{
$request = new stdClass();
$request->_this = $ret->propertyCollector;
$request->specSet = array (
'propSet' => array (
array ('type' => 'VirtualMachine', 'all' => 0, 'pathSet' => array ('name', 'guest.ipAddress', 'guest.guestState', 'runtime.powerState', 'config.hardware.numCPU', 'config.hardware.memoryMB')),
),
'objectSet' => array (
'obj' => $ret->rootFolder,
'skip' => false,
'selectSet' => array (
new soapvar($a, SOAP_ENC_OBJECT, 'TraversalSpec'),
new soapvar($b, SOAP_ENC_OBJECT, 'TraversalSpec'),
),
)
);
$res = $client->__soapCall('RetrieveProperties', array((array)$request));
} catch (Exception $e)
{
echo $e->getMessage();
}
echo '<pre>';
print_r($res);

Однако это не работает для того, что мне нужно.

Я пытаюсь получить информацию о хосте из управляемых объектов HostHardwareSummary или HostSystem.
Ты бы знал, как это сделать. Кажется, я не могу разобраться в системе объект / объект данных.
Я хочу только такие детали, как использование процессора и оперативной памяти.

Это использование памяти, которое я хочу использовать php

Если вы, ребята, можете мне помочь, я был бы очень признателен

Благодарю вас

1

Решение

Из кода вы переходите только к объектам метода свойств VM.

$b = array ('name' => 'DataCenterVMTraversalSpec', 'type' => 'Datacenter', 'path' => 'vmFolder', 'skip' => false, $ss);

Для уровня хоста вам нужно перейти к папке хоста. что-то вроде:
HostSystem

$bs = array ('name' => 'DataCenterVMTraversalSpec', 'type' => 'Datacenter', 'path' => 'hostFolder', 'skip' => false, $ss);

и получить доступ к статистике памяти хоста из:

host.summary.quickStats.overallMemoryUsage
0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector