xelon-ag / vmware-php-client
PHP API Client for VmWare
Installs: 2 982
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 2
Forks: 1
Open Issues: 3
Requires
- php: ^7.4|^8.0|^8.1|^8.2
- ext-soap: *
- guzzlehttp/guzzle: ^7.0.1
- illuminate/contracts: ^8.0|^9.0|^10.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- nunomaduro/collision: ^6.1
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- dev-main
- 0.2.2
- 0.2.1
- 0.2
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-feat/connect-network-adapter
- dev-fix/floppy-device-classes
- dev-feat/add-new-network-class
- dev-feat/add-virtual-devices
- dev-develop
- dev-fix/isset-issue
- dev-feat/import
- dev-dependabot/github_actions/actions/checkout-4
- dev-test-merge
- dev-dependabot/github_actions/dependabot/fetch-metadata-1.6.0
- dev-fix/hide-password-in-logs
- dev-feat/add-request-event
- dev-dependabot/github_actions/aglipanci/laravel-pint-action-2.3.0
- dev-php8.x-support
This package is auto-updated.
Last update: 2024-12-18 13:03:06 UTC
README
PHP API Client for VMWare
Installation
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), ];
Getting started
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 );
rest
mode
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.
soap
mode
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.
Credits
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 a.hazhur@bitcat.agency.
License
The MIT License (MIT). Please see License File for more information.