xelon-ag/vmware-php-client

PHP API Client for VmWare


README

PHP API Client for VMWare

Latest Version on Packagist GitHub Code Style Action Status Total Downloads

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.