https://github.com/xelon-ag/vmware-php-client
https://github.com/xelon-ag/vmware-php-client
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/xelon-ag/vmware-php-client
- Owner: Xelon-AG
- License: mit
- Created: 2022-07-18T10:10:37.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-10T10:36:02.000Z (about 2 months ago)
- Last Synced: 2025-04-10T11:37:11.436Z (about 2 months ago)
- Language: PHP
- Homepage: https://github.com/Xelon-AG/vmware-php-client/wiki/VcenterClient-API-Reference
- Size: 197 KB
- Stars: 11
- Watchers: 2
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
[
](https://supportukrainenow.org)
# PHP API Client for VMWare
[](https://packagist.org/packages/xelon-ag/vmware-php-client)
[](https://github.com/xelon-ag/vmware-php-client/actions?query=workflow%3A"Check+%26+fix+styling"+branch%3Amain)
[](https://packagist.org/packages/xelon-ag/vmware-php-client)
## Installation
You can install the package via composer:
```bash
composer require xelon-ag/vmware-php-client
```
You can publish the config file with:
```bash
php artisan vendor:publish --tag="vmware-php-client-config"
```
```php
return [
'session_ttl' => env('VMWARE_SESSION_TTL', 10),
'enable_logs' => env('VMWARE_ENABLE_LOGS', true),
];
```
## Getting started
Create a connection to your hypervisor so that you can call the methods:
```php
$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:
```php
$vcenterClient = new Xelon\VmWareClient\VcenterClient(
'https://10.20.30.40',
'mylogin',
'mypassword',
'soap'
);
```
Yet we recommend to use constants:
```php
$vcenterClient = new Xelon\VmWareClient\VcenterClient(
'https://10.20.30.40',
'mylogin',
'mypassword',
Xelon\VmWareClient\VcenterClient::MODE_SOAP
);
```
### `rest` mode
With `rest` mode you can use REST methods which you can find in the [VMWare API developer center](https://developer.vmware.com/apis/vsphere-automation/latest/).
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.
### `soap` mode
Using `soap` mode allow you to use SOAP methods which you can find in [VMWare SOAP developer center](https://developer.vmware.com/apis/1192/vsphere).
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:
```php
$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:
```php
$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]((https://developer.vmware.com/apis/1192/vsphere)), the `WSDL type definition` section for each object type.
## Credits
- [Andrii Hazhur](https://github.com/gazhur94)
- [All Contributors](https://github.com/Xelon-AG/vmware-php-client/graphs/contributors)
## Questions and feedback
If you've got questions about setup or just want to chat with the developer, please feel free to reach out to [email protected].
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.