PHP code example of myena / cloudstack-client-generator
1. Go to this page and download the library: Download myena/cloudstack-client-generator library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
myena / cloudstack-client-generator example snippets
php-cloudstack-generator cs-gen:generate-client --config="your_config_file.yml" --env="environment in config you wish to generate from"
$configuration = new CloudStackConfiguration([
'api_key' => '', // YOUR_API_KEY (, // Your CloudStack host (ts to 8080)
'api_path' => 'client/api', // admin api path (defaults to 'client/api')
'console_path' => 'client/console', // console api path (defaults to 'client/console')
'http_client' => null, // GuzzleHttp\ClientInterface compatible client
]);
$client = new CloudStackClient($config);
$job = $client->deployVirtualMachine(1, 259, 1);
printf("VM being deployed. Job id = %s", $job->jobid);
print "All jobs";
foreach ($client->listAsyncJobs() as $job) {
printf("%s : %s, status = %s", $job->jobid, $job->cmd, $job->jobstatus);
}
$result = $client->waitForAsync($job);
# The below is pseudo-code
// First, determine if this command is cacheable, caching has been configured, and we have a cache provider defined
$cacheable = $cacheableCommand && $cacheConfigured && $cacheProviderProvided;
// determine if above == true
if ($cacheable) {
// build cache key for this specific request
// Each key contains the following to prevent any collisions:
// 1. CloudStack Host from client config
// 2. API Key from client config
// 3. API Secret from client config
// 4. Name of command being executed (listTemplates, for example)
// 5. The parameters specified for this request are serialized and appended in "{$k}{$v}" fashion
// The above is prepended with your configure cache prefix after being run through sha1()
$key = '{configured-prefix}-'.sha1("{cloudStackHost}{apiKey}{secretKey}{commandName}{requestParameterKVPairs}";
// test to see if the key exists in the cache and can be fetched successfully
if ($cacheProvider->contains($key) && ($fetched = $cacheProvider->fetch($key)) && (false !== $fetched)) {
// if we got got a cache key, return the cached response
return $fetched;
}
}
// if we make it here, we're either dealing with a write request, a command for which caching has been disabled,
// caching has not been configured at all, or a cached response was not found
// ... perform typical API request against cloudstack ...
// once again test cacheability
if ($cacheable) {
// attempt to store cached response with configured TTL using $key generated above
}
// return response from CloudStack
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.