如何获取图片模板的详细信息?

时间:2015-12-08 21:12:53

标签: ibm-cloud-infrastructure

从我通过SoftLayer UI看到的内容,在创建图像模板并尝试使用它来订购虚拟服务器之后,已经选择了选项以匹配创建图像模板的主机。 所以我猜测模板将包含有关CPU,内存,磁盘空间等的所有详细信息。如何获取这些详细信息?

我的猜测是" SoftLayer_Virtual_Guest_Block_Device_Template_Group"表示图像模板,因此它会有一些API告诉我图像模板的详细信息,但我还没有找到可能会给我这些信息的API,除非我错过了它。

我使用哪种API来获取SoftLayer中图像模板的详细信息? (这样我就知道为哪个类别等选择了什么值。)

2 个答案:

答案 0 :(得分:0)

图像模板包含有关操作系统和磁盘的信息。您可以使用以下方法从图像模板中获取详细信息:

http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest_Block_Device_Template_Group/getObject

从可以使用图像的包中获取信息:

http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getAvailablePackagesForImageTemplate

此外,以下方法将帮助您检索可应用于图像的项目:

http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getItemsFromImageTemplate

我希望这些信息可以帮到你

答案 1 :(得分:0)

尝试以下php脚本,它将有助于获取图像模板的可用包及其项目,

<?php
/**
 * Get packages and items from an image template
 *
 * This script retrieves packages in which the image template could be used, 
 * also It retrieves the items available for the image per package.
 *
 * Important manual pages:
 * http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getAvailablePackagesForImageTemplate
 * http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getItemsFromImageTemplate
 *
 * License: http://sldn.softlayer.com/article/License
 * Author: SoftLayer Technologies, Inc. <sldn@softlayer.com>
*/
require_once __DIR__."SoapClient.php";

# Your SoftLayer username and apikey
$username = "set me";
$apiKey = "set me";

# The image template which you wish more details
$imageTemplateId = 429428;
# Creating a SoftLayer API client object
$packageService = \SoftLayer\SoapClient::getClient("SoftLayer_Product_Package", null, $username, $apiKey);

/*
 * Build a skeleton SoftLayer_Virtual_Guest_Block_Device_Template_Group object to define the image template id 
 */
$imageTemplate = new \stdClass();
$imageTemplate -> id = $imageTemplateId;

try {
    // Get available packages for the image template
    $packages = $packageService -> getAvailablePackagesForImageTemplate($imageTemplate);
    foreach ($packages as $package)
    {
        // Set init parameters per available package 
        $packageService -> setInitParameter($package->id);
        // Print available package
        print_r("**** PACKAGE: " . $package->id . " ****\n");
        // Get items per package
        $items = $packageService -> getItemsFromImageTemplate($imageTemplate);
        print_r($items);
    }
} catch (Exception $e) {
    die("Unable to get packages and items for the image template. " . $e->getMessage());
}

?>

参考文献: SoftLayer API PHP客户端:https://github.com/softlayer/softlayer-api-php-client