You can install the package via composer:
composer require xelon-ag/vmware-php-client
You can publish the config file with:
php artisan vendor:publish --tag="vmware-php-client-config"
return [
'session_ttl' => env('VMWARE_SESSION_TTL', 10),
'enable_logs' => env('VMWARE_ENABLE_LOGS', true),
];
Create a connection to your hypervisor so that you can call the methods:
$vcenterClient = new Xelon\VmWareClient\VcenterClient(
'https://10.20.30.40',
'mylogin',
'mypassword'
);
$vmInfo = $vcenterClient->getVmInfo('vm-123');
This lib can run in three modes: rest
, soap
and both
. By default, it runs in rest
mode, but you can set another mode in constructor:
$vcenterClient = new Xelon\VmWareClient\VcenterClient(
'https://10.20.30.40',
'mylogin',
'mypassword',
'soap'
);
Yet we recommend to use constants:
$vcenterClient = new Xelon\VmWareClient\VcenterClient(
'https://10.20.30.40',
'mylogin',
'mypassword',
Xelon\VmWareClient\VcenterClient::MODE_SOAP
);
With rest
mode you can use REST methods which you can find in the VMWare API developer center.
For now, the lib has only some methods available. You can find full list of files in the vendor/xelon-ag/vmware-php-client/src/Traits/Rest
folder.
We plan to add the full list of methods later.
Using soap
mode allow you to use SOAP methods which you can find in VMWare SOAP developer center.
For now, the lib has only some methods available. You can find full list of files in the vendor/xelon-ag/vmware-php-client/src/Traits/SOAP
folder.
We plan to add the full list of methods later.
Here's how to make your first SOAP call:
$folder = $vcenterClient->soap->createFolder('group-v3', 'foldername');
If you want to use both modes at one time you can set both
mode (Xelon\VmWareClient\VcenterClient::MODE_BOTH).
If you want to run custom soap
method, which you do not find in lib, you can run this method directly:
$vcenterClient = new Xelon\VmWareClient\VcenterClient(
'https://10.20.30.40',
'mylogin',
'mypassword',
Xelon\VmWareClient\VcenterClient::MODE_SOAP
);
$taskInfo = $vcenterClient->soap->request('ReconfigureComputeResource_Task', [
'_this' => [
'_' => 'domain-c33',
'type' => 'ComputeResource',
],
'spec' => [
'@type' => 'ClusterConfigSpecEx',
'drsConfig' => [
'@type' => 'ClusterDrsConfigInfo',
],
'rulesSpec' => [
'@type' => 'ClusterRuleSpec',
'operation' => 'add',
'info' => [
'@type' => 'ClusterAntiAffinityRuleSpec',
'enabled' => true,
'name' => 'VM-VM Affinity rule',
'userCreated' => true,
'vm' => [
['_' => 'vm-133', 'type' => 'VirtualMachine'],
['_' => 'vm-134', 'type' => 'VirtualMachine']
]
],
],
'dpmConfig' => [
'@type' => 'ClusterDpmConfigInfo',
],
],
'modify' => false,
])
Order of parameters is very important. You can find the correct order in the documentation, the
WSDL type definition
section for each object type.
If you've got questions about setup or just want to chat with the developer, please feel free to reach out to [email protected].
The MIT License (MIT). Please see License File for more information.